est quelque chose (avec un repos ex. p> de sorte que la sortie de la fonction est le nom de la rue, le code postal et la ville. Merci pour toutes les exemples d'aide et de scripts! P> p>
4 Réponses :
Oui, utilisez simplement la fonction "Geocodage inverse" dans l'API Google Maps: http://code.google.com/apis/maps/documentation/geocoding/#ReverseSocode
Voici quelques exemples de code: P>
$lat="38.115583"; $long = "13.37579"; $url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&sensor=false"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_ENCODING, ""); $curlData = curl_exec($curl); curl_close($curl); $address = json_decode($curlData); print_r($address);
Il y a beaucoup de restrictions sur l'API Google Maps. Par exemple. que vous ne pouvez pas l'utiliser sans la carte ou que vous êtes limité à une quantité de requêtes par jour.
Comme @Elijah mentionne, il y a beaucoup de restrictions sur les cartes API que j'ai données dans ma dernière réponse. Vous êtes seulement censé l'utiliser pour les applications Google Maps. Si c'est un problème, vous pouvez également essayer l'API AdWords. Il a également un service similaire mais Google charge pour cela, il y a donc moins de restriction. P>
Vous pouvez également jeter un coup d'œil à l'aide de Yahoo! 'S Placefinder API, qui offre un inverse géocodage. Un exemple minimal d'un appel à l'API (lui demandant de retourner le format de données léger-interchange du jour, JSON ) pourrait regarder Comme: sortire le premier résultat (j'espère y y un!) qui contient des propriétés telles que Une autre façon d'utiliser l'API de Placefinder est via Yahoo! 's YQL API, qui vous permet d'utiliser des requêtes de type SQL contre" Tables de données "(souvent, d'autres API). P> Une telle requête pourrait ressembler à: P> ( Essayez ceci dans l'interface de console YQL ) P> Pour faire un appel à YQL avec cette requête, de PHP, est très similaire à l'exemple précédent et doit imprimer les mêmes informations. P> rue code>,
postal code> et
Ville Code>. P>
$query = 'SELECT * FROM geo.placefinder WHERE text="55.948496,-3.198909" AND gflags="R"';
$url = 'http://query.yahooapis.com/v1/public/yql?q='.urlencode($query).'&format=json';
$response = json_decode(file_get_contents($url));
$location = $response->query->results->Result;
print_r($location);
Voici ma fonction PHP que j'ai utilisée pour faire une recherche de géocode inversée pour une adresse de rue à l'aide de l'API Google Map. Remarque, cet exemple obtient la sortie de Google à Json, mais je fais une analyse simple dans PHP.
/* * Use Google Geocoding API to do a reverse address lookup from GPS coordinates */ function GetAddress( $lat, $lng ) { // Construct the Google Geocode API call // $URL = "http://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${lng}&sensor=false"; // Extract the location lat and lng values // $data = file( $URL ); foreach ($data as $line_num => $line) { if ( false != strstr( $line, "\"formatted_address\"" ) ) { $addr = substr( trim( $line ), 22, -2 ); break; } } return $addr; }
Ce que vous voulez, ce n'est pas le géocodage, mais inverse b> géocodage ;-) (voir Secure.Wikimedia.org/wikipedia/fr/wiki/Reverse_Geocoding ) i>