1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
function google_place_lookup($string,$l){
$array = array();
$details_url = "https://maps.googleapis.com/maps/api/geocode/json?language=".$l."&address=".str_replace (" ", "+", urlencode($string))."&key=GOOGLE_KEY";
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_URL, $details_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
if ($response['status'] != 'OK') { return null; }
$componentsSort = array('street_number' => array("short_name" => "street_number"),
'route' => array("long_name" => "route"),
'neighborhood' => array("long_name" => "neighborhood"),
'sublocality_level_1' => array("long_name" => "sublocality_level_1"),
'sublocality_level_2' => array("long_name" => "sublocality_level_2"),
'sublocality_level_3' => array("long_name" => "sublocality_level_3"),
'sublocality_level_4' => array("long_name" => "sublocality_level_4"),
'sublocality_level_5' => array("long_name" => "sublocality_level_5"),
'locality' => array("long_name" => "locality"),
'administrative_area_level_1' => array("long_name" => "admin_area_level_1_long",
'administrative_area_level_2' => array("short_name" => "admin_area_level_2_short"),
'administrative_area_level_3' => array("short_name" => "admin_area_level_2_short", "short_name" => "admin_area_level_3_short"),
'administrative_area_level_4' => array("short_name" => "admin_area_level_4_short"),
'administrative_area_level_5' => array("short_name" => "admin_area_level_5_short"),
'country' => array('long_name' => 'country_long','short_name' => 'country_short'),
'postal_code' => array("short_name" => "postal_code")
);
$components = $response['results'][0]['address_components'];
foreach($components as $k => $v) {
$types = $components[$k]['types'][0];
if(isset($componentsSort[$types]) && $componentsSort[$types]) {
foreach($componentsSort[$types] as $k2 => $v2) {
$array[$v2] = $components[$k][$k2];
}
}
}
$array['place_id'] = $response['results'][0]['place_id'];
$array['formatted_address'] = $response['results'][0]['formatted_address'];
$array['latitude'] = $response['results'][0]['geometry']['location']['lat'];
$array['longitude'] = $response['results'][0]['geometry']['location']['lng'];
return $array;
} |
Partager