Ce que vous cherchez s'appelle le géocodage inversé. Google fournit un serveur-côté géocodage inversé service par le biais de Google API de Géocodage, vous devriez être en mesure d'utiliser pour votre projet.
C'est de cette manière une réponse à la requête 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 aussi choisir de recevoir la réponse en xml au lieu de json, par simple substitution d'json xml dans l'URI de la demande:
http://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=false
Pour autant que je sais, Google est également de retour le même nom pour adresse composants, en particulier pour le haut niveau des noms comme noms de pays et les noms de ville. Néanmoins, gardez à l'esprit que, bien que les résultats sont très précis pour la plupart des applications, vous pouvez toujours trouver les occasionnels faute d'orthographe ou un résultat ambigu.