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