Ce que vous recherchez s'appelle le géocodage inversé . Google fournit un service de géocodage inversé côté serveur via l' API Google Geocoding , que vous devriez pouvoir utiliser pour votre projet.
Voici à quoi ressemblerait une réponse à la demande suivante:
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false
Réponse:
{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "275-291 Bedford Ave, Brooklyn, NY 11211, USA",
"address_components": [ {
"long_name": "275-291",
"short_name": "275-291",
"types": [ "street_number" ]
}, {
"long_name": "Bedford Ave",
"short_name": "Bedford Ave",
"types": [ "route" ]
}, {
"long_name": "New York",
"short_name": "New York",
"types": [ "locality", "political" ]
}, {
"long_name": "Brooklyn",
"short_name": "Brooklyn",
"types": [ "administrative_area_level_3", "political" ]
}, {
"long_name": "Kings",
"short_name": "Kings",
"types": [ "administrative_area_level_2", "political" ]
}, {
"long_name": "New York",
"short_name": "NY",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "United States",
"short_name": "US",
"types": [ "country", "political" ]
}, {
"long_name": "11211",
"short_name": "11211",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 40.7142298,
"lng": -73.9614669
},
"location_type": "RANGE_INTERPOLATED",
"viewport": {
"southwest": {
"lat": 40.7110822,
"lng": -73.9646145
},
"northeast": {
"lat": 40.7173774,
"lng": -73.9583193
}
}
}
},
... Additional results[] ...
Vous pouvez également choisir de recevoir la réponse en xml au lieu de json, en remplaçant simplement json par xml dans l'URI de la requête:
http://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=false
Pour autant que je sache, Google renverra également le même nom pour les composants d'adresse, en particulier pour les noms de haut niveau tels que les noms de pays et les noms de villes. Néanmoins, gardez à l'esprit que si les résultats sont très précis pour la plupart des applications, vous pouvez toujours trouver une faute d'orthographe occasionnelle ou un résultat ambigu.