Le terme geocoding désigne généralement la traduction d'une adresse lisible en un emplacement sur une carte. Le processus inverse, c'est-à-dire la conversion d'un emplacement sur la carte en une adresse lisible, est appelé geocoding inversé.
Requêtes de géocodage inversé
Paramètres obligatoires
latlng
: coordonnées de latitude et de longitude spécifiant l'emplacement pour lequel vous souhaitez obtenir l'adresse lisible la plus proche.key
: clé API de votre application. Cette clé identifie votre application à des fins de gestion des quotas. Découvrez comment obtenir une clé.
Paramètres facultatifs
Voici les paramètres facultatifs que vous pouvez inclure dans une requête de géocodage inverse:
language
: langue dans laquelle les résultats doivent être renvoyés.- Consultez la liste des langues acceptées. Google met souvent à jour les langues acceptées. Cette liste n'est donc pas exhaustive.
- Si
language
n'est pas fourni, le géocodeur tente d'utiliser la langue préférée spécifiée dans l'en-têteAccept-Language
ou la langue native du domaine à partir duquel la requête est envoyée. - Le géocodeur s'efforce de fournir une adresse de rue lisible à la fois pour l'utilisateur et les locaux. Pour ce faire, il renvoie les adresses dans la langue locale, translitérées dans un script lisible par l'utilisateur si nécessaire, en respectant la langue préférée. Toutes les autres adresses sont renvoyées dans la langue préférée. Les composants de l'adresse sont tous renvoyés dans la même langue, choisie à partir du premier composant.
- Si un nom n'est pas disponible dans la langue préférée, le géocodeur utilise la correspondance la plus proche.
region
: code régional, spécifié sous la forme d'une valeur ccTLD (TLD pour top-level domain, domaine de premier niveau) à deux caractères. Le paramètre peut également avoir une incidence sur les résultats en fonction de la législation applicable.result_type
: filtre d'un ou de plusieurs types d'adresses, séparés par un pipe (|
). Si le paramètre contient plusieurs types d'adresses, l'API renvoie toutes les adresses correspondant à l'un de ces types. Remarque concernant le traitement: Le paramètreresult_type
ne limite pas la recherche au ou aux types d'adresses spécifiés.result_type
agit plutôt comme un filtre post-recherche: l'API extrait tous les résultats pour lelatlng
spécifié, puis supprime les résultats qui ne correspondent pas au ou aux types d'adresses spécifiés. Les valeurs suivantes sont acceptées :street_address
indique une adresse postale précise.route
indique une route nommée (par exemple, "US 101").intersection
indique une intersection majeure, généralement sur deux routes principales.political
indique une entité politique. Généralement, ce type indique un polygone de certaines administrations civiles.country
indique l'entité politique nationale et correspond généralement au type de premier ordre renvoyé par le Geocoder.administrative_area_level_1
indique une entité civile de premier ordre en dessous du niveau du pays. Aux États-Unis, ces niveaux administratifs correspondent aux États. Toutes les nations ne possèdent pas ces niveaux administratifs. Dans la plupart des cas, les noms courts "administrative_area_level_1" correspondront fidèlement aux subdivisions ISO 3166-2 et aux autres listes largement diffusées. Cependant, cela n'est pas systématique, car nos résultats de geocoding se basent sur divers signaux et données de localisation.administrative_area_level_2
indique une entité civile de deuxième ordre en dessous du niveau du pays. Aux États-Unis, ces niveaux administratifs correspondent aux comtés. Toutes les nations ne possèdent pas ces niveaux administratifs.administrative_area_level_3
indique une entité civile de troisième ordre en dessous du niveau du pays. Ce type indique une division civile mineure. Toutes les nations ne possèdent pas ces niveaux administratifs.administrative_area_level_4
indique une entité civile de quatrième ordre en dessous du niveau du pays. Ce type indique une division civile mineure. Toutes les nations ne possèdent pas ces niveaux administratifs.administrative_area_level_5
indique une entité civile de cinquième ordre en dessous du niveau du pays. Ce type indique une division civile mineure. Toutes les nations ne possèdent pas ces niveaux administratifs.administrative_area_level_6
indique une entité civile de sixième ordre en dessous du niveau du pays. Ce type indique une division civile mineure. Toutes les nations ne possèdent pas ces niveaux administratifs.administrative_area_level_7
indique une entité civile de septième ordre en dessous du niveau du pays. Ce type indique une division civile mineure. Toutes les nations ne possèdent pas ces niveaux administratifs.colloquial_area
indique un autre nom couramment utilisé pour l'entité.locality
indique une entité politique de ville ou de municipalité incorporée.sublocality
indique une entité civile de premier ordre en dessous d'une localité. Pour certains établissements, vous pouvez recevoir l'un des types supplémentaires suivants : desublocality_level_1
àsublocality_level_5
. Chaque niveau de sous-localité correspond à une entité civile. Plus le nombre est élevé, plus la zone géographique est petite.neighborhood
indique un quartier nommé.premise
indique un lieu nommé, généralement un bâtiment ou un ensemble de bâtiments ayant un nom commun.subpremise
indique une entité adressable en dessous du niveau de l'établissement, comme un appartement, un lot ou une suite.plus_code
indique une référence de lieu encodée, déterminée par la latitude et la longitude. Vous pouvez utiliser des Plus Codes pour remplacer les adresses postales dans les endroits où elles n'existent pas (où les bâtiments ne sont pas numérotés ni nommés). Pour en savoir plus, consultez https://plus.codes.postal_code
indique un code postal utilisé dans les adresses de courrier postal du pays.natural_feature
indique un élément géographique naturel important.airport
indique un aéroport.park
indique un parc nommé.point_of_interest
indique un point d'intérêt nommé. En général, ces "POI" sont des entités locales importantes qui ne correspondent à aucune autre catégorie, comme "Empire State Building" ou "Tour Eiffel".
location_type
: filtre d'un ou de plusieurs types d'emplacements, séparés par un pipe (|
). Si le paramètre contient plusieurs types d'emplacements, l'API renvoie toutes les adresses correspondant à l'un de ces types. Remarque concernant le traitement: Le paramètrelocation_type
ne limite pas la recherche aux types d'emplacements spécifiés.location_type
agit plutôt comme un filtre post-recherche: l'API extrait tous les résultats pour lelatlng
spécifié, puis élimine les résultats qui ne correspondent pas aux types d'établissements spécifiés. Les valeurs suivantes sont acceptées :"ROOFTOP"
ne renvoie que les adresses pour lesquelles Google dispose d'informations de localisation précises jusqu'à l'adresse de rue."RANGE_INTERPOLATED"
ne renvoie que les adresses qui reflètent une approximation (généralement sur une route) interpolée entre deux points précis (des intersections, par exemple). Une plage interpolée indique généralement que les géocodes de toit ne sont pas disponibles pour une adresse postale."GEOMETRIC_CENTER"
ne renvoie que les centres géométriques d'un emplacement, comme une polyligne (par exemple, une rue) ou un polygone (une région)."APPROXIMATE"
ne renvoie que les adresses caractérisées comme approximatives.
extra_computations
: utilisez ce paramètre pour spécifier les fonctionnalités supplémentaires suivantes dans la réponse :ADDRESS_DESCRIPTORS
: consultez les descripteurs d'adresse pour en savoir plus.BUILDING_AND_ENTRANCES
: consultez la section Entrées et contours de bâtiments pour en savoir plus.
extra_computations
dans la requête pour chaque fonctionnalité, par exemple :extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES
Si les filtres result_type
et location_type
sont tous deux présents, l'API ne renvoie que les résultats correspondant à la fois aux valeurs result_type
et location_type
. Si aucune des valeurs de filtre n'est acceptable, l'API renvoie ZERO_RESULTS
.
Exemple de geocoding inversé
La requête suivante contient la valeur latitude/longitude pour un lieu à Brooklyn :
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
La requête ci-dessus renvoie le résultat suivant :
{
"results" : [
{
"address_components" : [
{
"long_name" : "277",
"short_name" : "277",
"types" : [ "street_number" ]
},
{
"long_name" : "Bedford Avenue",
"short_name" : "Bedford Ave",
"types" : [ "route" ]
},
{
"long_name" : "Williamsburg",
"short_name" : "Williamsburg",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Brooklyn",
"short_name" : "Brooklyn",
"types" : [ "sublocality", "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" ]
}
],
"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
"geometry" : {
"location" : {
"lat" : 40.714232,
"lng" : -73.9612889
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 40.7155809802915,
"lng" : -73.9599399197085
},
"southwest" : {
"lat" : 40.7128830197085,
"lng" : -73.96263788029151
}
}
},
"place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
"types" : [ "street_address" ]
},
... Additional <code>results[]</code> ...
Notez que le géocodeur inversé a renvoyé plusieurs résultats. Les résultats "formatted_address"
ne correspondent pas uniquement à des adresses postales, mais également à toutes les possibilités de nommer géographiquement un lieu. Par exemple, lors du géocodage d'un point dans la ville de Chicago, le point géocodé peut être indiqué sous la forme d'une adresse postale, d'une ville (Chicago), d'un État (Illinois) ou d'un pays (États-Unis). Toutes ces désignations sont des "adresses" pour le géocodeur. Le geocoding inversé renvoie n'importe lequel de ces types comme résultats valides.
Le géocodeur inversé fait correspondre les entités politiques (pays, provinces, villes et quartiers), les adresses postales et les codes postaux.
La liste complète des valeurs formatted_address
renvoyées par la requête précédente est présentée ci-dessous.
{
"plus_code" : {
"compound_code" : "P27Q+MCM New York, NY, USA",
"global_code" : "87G8P27Q+MCM"
},
"results" : [
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "street_address" ]
},
{
"formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "premise" ]
},
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "establishment", "point_of_interest" ]
},
{
"formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "route" ]
},
{
"formatted_address" : "P27Q+MC New York, NY, USA",
...
"types" : [ "plus_code" ]
},
{
"formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Brooklyn, NY 11211, USA",
...
"types" : [ "postal_code" ]
},
{
"formatted_address" : "Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Kings County, Brooklyn, NY, USA",
...
"types" : [ "administrative_area_level_2", "political" ]
},
{
"formatted_address" : "Brooklyn, NY, USA",
...
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"formatted_address" : "New York, NY, USA",
...
"types" : [ "locality", "political" ]
},
{
"formatted_address" : "New York, USA",
...
"types" : [ "administrative_area_level_1", "political" ]
},
{
"formatted_address" : "United States",
...
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}
Cette API renvoie différents types d'adresses, de l'adresse postale la plus précise aux entités politiques les moins précises comme les quartiers, les villes, les départements et les États. En règle générale, l'adresse la plus précise est le résultat le plus mis en avant, comme le montre notre exemple. Si vous souhaitez faire correspondre un type d'adresse spécifique, consultez la section ci-dessous sur la restriction des résultats par type. Par conséquent, l'emplacement des résultats par rapport à l'autre peut varier.
Geocoding inversé filtré par type
L'exemple suivant filtre les adresses renvoyées pour n'inclure que celles dont le type d'emplacement est ROOFTOP
et le type d'adresse street_address
.
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY
Remarque:Ces filtres ne sont valides que pour le géocodage inverse.
Réponses au géocodage inversé
Le format de la réponse de géocodage inversé est le même que celui de la réponse de géocodage. Consultez Réponses aux requêtes de géocodage. Vous trouverez ci-dessous les codes de statut possibles dans une réponse de géocodage inversé.
Codes d'état du géocodage inversé
Le champ "status"
de l'objet de réponse de géocodage contient l'état de la requête et peut contenir des informations de débogage pour vous aider à comprendre pourquoi le géocodage inverse ne fonctionne pas. Le champ "status"
peut contenir les valeurs suivantes:
"OK"
indique qu'aucune erreur ne s'est produite et qu'au moins une adresse a été renvoyée."ZERO_RESULTS"
indique que le géocodage inverse a abouti, mais n'a renvoyé aucun résultat. Cela peut se produire si le geocoder a reçu unlatlng
dans un emplacement distant."OVER_QUERY_LIMIT"
indique que vous avez dépassé votre quota."REQUEST_DENIED"
indique que la requête a été refusée. Cela peut être dû au fait que la requête inclut un paramètreresult_type
oulocation_type
, mais pas de clé API."INVALID_REQUEST"
indique généralement l'un des éléments suivants :- La requête (
address
,components
oulatlng
) est manquante. - Un
result_type
oulocation_type
non valide a été fourni.
- La requête (
"UNKNOWN_ERROR"
indique que la requête n'a pas pu être traitée en raison d'une erreur de serveur. Si vous essayez à nouveau, la requête pourrait aboutir.
Géocoder des Plus Codes inversés
Le champ plus_code
de la réponse de géocodage contient un plus code qui se rapproche le plus de la latitude et de la longitude interrogées.
De plus, dans la plupart des cas, le tableau des résultats JSON contient un résultat de géocodage complet avec un type plus_code
et une adresse contenant un code plus. La distance entre le code plus décodé et le point de la requête est garantie inférieure à 10 mètres.