Le geocoding inversé traduit un emplacement sur une carte en une adresse lisible. Vous représentez l'emplacement sur la carte par les coordonnées de latitude et de longitude de l'emplacement.
Lorsque vous effectuez un geocoding inversé d'un emplacement, la réponse contient les éléments suivants :
- ID de lieu de l' adresse
- Plus Codes de l'adresse
- Détails de l'adresse
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. L'adresse la plus précise est généralement le premier résultat. Si
vous souhaitez obtenir un type d'adresse spécifique, utilisez le
types paramètre.
Requête de geocoding inversé
Une requête de geocoding inversé est une requête HTTP GET. Vous pouvez spécifier l'emplacement sous forme de chaîne non structurée :
https://geocode.googleapis.com/v4/geocode/location/LATITUDE,LONGITUDE
Ou sous forme d'ensemble structuré de coordonnées de latitude et de longitude représentées par des paramètres de requête :
https://geocode.googleapis.com/v4/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE
Vous utilisez généralement le format structuré lorsque vous traitez des composants de localisation capturés dans un formulaire HTML.
Transmettez tous les autres paramètres en tant que paramètres d'URL ou, pour les paramètres tels que la clé API ou le masque de champ, dans les en-têtes dans le cadre de la requête GET. Exemple :
Transmettre une chaîne de localisation non structurée
Une localisation non structurée est une localisation mise en forme sous forme de chaîne de coordonnées de latitude et de longitude séparées par une virgule :
https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?key=API_KEY
Ou dans une commande curl :
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338"
Transmettre une localisation structurée
Spécifiez la localisation structurée à l'aide du paramètre de requête location, de type
LatLng.
L'objet LatLng vous permet de spécifier la latitude et la longitude en tant que paramètres de requête distincts :
https://geocode.googleapis.com/v4/geocode/location?location.latitude=37.4225508&location.longitude=-122.0846338 &key=API_KEY
Utiliser OAuth pour effectuer une requête
L'API Geocoding v4 est compatible avec OAuth 2.0 pour l'authentification. Pour utiliser OAuth avec l'API Geocoding, le jeton OAuth doit être associé au bon champ d'application. L'API Geocoding est compatible avec les champs d'application suivants pour une utilisation avec le geocoding inversé :
https://www.googleapis.com/auth/maps-platform.geocode: à utiliser avec toutes les méthodes de l'API Geocoding.https://www.googleapis.com/auth/maps-platform.geocode.location: à utiliser uniquement avecGeocodeLocationpour le geocoding inversé.
Vous pouvez également utiliser le champ d'application général https://www.googleapis.com/auth/cloud-platform pour toutes les méthodes de l'API Geocoding. Ce champ d'application est utile lors du développement, mais pas en production, car il s'agit d'un champ d'application général qui permet d'accéder à toutes les méthodes.
Pour en savoir plus et obtenir des exemples, consultez Utiliser OAuth.
Réponse de geocoding inversé
Le geocoding inversé renvoie un
GeocodeLocationResponse
objet contenant les éléments suivants :
-
Le
resultstableau d'GeocodeResultobjets représentant le lieu.Les réponses de l'API Geocoding incluent des
typestableaux dans deux emplacements principaux deGeocodeResult:GeocodeResult.types: ce tableau indique le ou les types généraux du résultat. Les valeurs possibles sont extraites des types de lieux utilisés par l'API Places. Pour en savoir plus, consultez les tableaux A et B des types de lieux.GeocodeResult.addressComponents[].types: chaque composant d'adresse comporte untypestableau indiquant le type de cette partie spécifique de l'adresse. Ces valeurs sont extraites du tableau des types d'adresses et des composants d'adresse utilisé par l'API Places.
Le geocoding inversé renvoie plusieurs résultats dans le tableau
results. Les résultats ne correspondent pas uniquement à des adresses postales, mais également à toutes les possibilités de nommer géographiquement un lieu. Par exemple, lors du geocoding 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 geocoder. Le geocoding inversé renvoie n'importe lequel de ces types comme résultats valides. -
Le champ
plusCode, de typePlusCode, contient le Plus Code qui correspond le mieux à la latitude et à la longitude de la requête. De plus, chaque élément duresultstableau contient un Plus Code. La distance entre le Plus Code décodé et le point de la requête est inférieure à 10 mètres.Remarque : L'API ne renvoie pas toujours de Plus Codes.
L'objet JSON complet se présente sous la forme suivante :
{ "results": [ { "place": "//places.googleapis.com/places/ChIJV-FZF7i7j4ARo4ZOUoecZFU", "placeId": "ChIJV-FZF7i7j4ARo4ZOUoecZFU", "location": { "latitude": 37.422588300000008, "longitude": -122.0846489 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.421239319708512, "longitude": -122.0859978802915 }, "high": { "latitude": 37.423937280291511, "longitude": -122.08329991970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] } ], "types": [ "street_address" ], "plusCode": { "globalCode": "849VCW83+PM", "compoundCode": "CW83+PM Mountain View, CA, USA" } }, { "place": "//places.googleapis.com/places/ChIJj61dQgK6j4AR4GeTYWZsKWw", "placeId": "ChIJj61dQgK6j4AR4GeTYWZsKWw", "location": { "latitude": 37.4220541, "longitude": -122.08532419999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.4207051197085, "longitude": -122.08667318029148 }, "high": { "latitude": 37.423403080291493, "longitude": -122.08397521970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] } ], "types": [ "establishment", "point_of_interest" ], "plusCode": { "globalCode": "849VCWC7+RV", "compoundCode": "CWC7+RV Mountain View, CA, USA" } }, ... ], "plusCode": { "globalCode": "849VCWF8+24H", "compoundCode": "CWF8+24H Mountain View, CA, USA" } }
Paramètres obligatoires
position
Coordonnées de latitude et de longitude spécifiant où vous souhaitez obtenir l'adresse lisible la plus proche.
Paramètres facultatifs
languageCode
Langue dans laquelle renvoyer les résultats.
- Consultez la liste des langues acceptées. Google met souvent à jour les langues acceptées. Cette liste n'est donc pas exhaustive.
-
Si
languageCoden'est pas fourni, l'API utiliseenpar défaut. Si vous spécifiez un code de langue non valide, l'API renvoie uneINVALID_ARGUMENTerreur. - L'API fait de son mieux pour fournir une adresse postale lisible pour l'utilisateur et les habitants. Pour atteindre cet objectif, elle renvoie les adresses postales dans la langue locale, translitté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 d'adresse sont tous renvoyés dans la même langue, qui est choisie à partir du premier composant.
- Si un nom n'est pas disponible dans la langue préférée, l'API utilise la correspondance la plus proche.
- La langue préférée a une faible influence sur l'ensemble des résultats que l'API choisit de renvoyer et sur l'ordre dans lequel ils sont renvoyés. Le géocoder interprète les abréviations différemment selon la langue, par exemple les abréviations des types de rues ou les synonymes qui peuvent être valides dans une langue, mais pas dans une autre.
regionCode
Code de région sous forme de valeur de code CLDR à deux caractères. Il n'existe pas de valeur par défaut. La plupart des codes CLDR sont identiques aux codes ISO 3166-1.
Lors du geocoding d'une adresse, geocoding direct, ce paramètre peut influencer, mais pas limiter totalement, les résultats du service à la région spécifiée. Lors du geocoding d'un lieu ou d'un emplacement (geocoding inversé ou geocoding de lieu), ce paramètre peut être utilisé pour mettre en forme l'adresse. Dans tous les cas, ce paramètre peut affecter les résultats en fonction de la loi applicable.
niveau de détail
Un ou plusieurs niveaux de détail de localisation, spécifiés en tant que paramètres de requête distincts, tels que définis par
Granularity. Si vous spécifiez plusieurs paramètresgranularity, l'API renvoie toutes les adresses qui correspondent à l'un des niveaux de détail.Le paramètre
granularityne limite pas la recherche aux niveaux de détail de localisation spécifiés. Rather,granularityagit plutôt comme un filtre post-recherche. L'API récupère tous les résultats pour lalocationspécifiée, puis ignore ceux qui ne correspondent pas aux niveaux de détail de localisation spécifiés.Si vous spécifiez à la fois
typesetgranularity, l'API ne renvoie que les résultats qui correspondent aux deux. Exemple :https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP
&granularity=GEOMETRIC_CENTER &key=API_KEY Types
Un ou plusieurs types d'adresses, spécifiés en tant que paramètres de requête distincts. Les valeurs possibles sont extraites du tableau des types d'adresses et des types de composants d'adresse de la page Types de lieux (nouveau). Si vous spécifiez plusieurs
typesparamètres, l'API renvoie toutes les adresses qui correspondent à l'un des types.Le paramètre
typesne limite pas la recherche au(x) type(s) d'adresse spécifié(s). Plutôt,typesagit comme un filtre post-recherche. L'API récupère tous les résultats pour la localisation spécifiée, puis ignore ceux qui ne correspondent pas au(x) type(s) d'adresse spécifié(s).Si vous spécifiez à la fois
typesetgranularity, alors l'API ne renvoie que les résultats qui correspondent aux deux. Exemple :https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2
&types=locality &key=API_KEY -
FieldMask
Créez un masque de champ de réponse pour spécifier les champs à renvoyer dans la réponse. Transmettez le masque de champ de réponse à la méthode à l'aide du paramètre d'URL
$fieldsoufields, ou à l'aide de l'en-tête HTTPX-Goog-FieldMask. Par exemple, la requête ci-dessous ne renverra que les champsplaceIDde la réponse. La réponse est la suivante :curl -X GET -H 'Content-Type: application/json' \ -H 'X-Goog-FieldMask: results.placeId' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338"
{ "results": [ { "placeId": "ChIJHRNUiQK6j4ARJ__Hrbt6qsE" }, { "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, { "placeId": "ChIJ1yjFJ1-7j4ARG_RVqFD1h7k" }, { "placeId": "ChIJ09H2YwK6j4ARoF7qfCBxhB8" }, ... ] }
Pour en savoir plus, consultez Choisir les champs à renvoyer.