Le geocoding traduit une adresse en un emplacement sur une carte. Lorsque vous géocodez une adresse, la réponse contient les éléments suivants :
- ID d'emplacement du lieu
- Coordonnées de latitude et de longitude du lieu
- Plus Code du lieu
- Détails de l'adresse étendus
Demande de géocodage
Une requête de géocodage est une requête HTTP GET. Vous pouvez spécifier l'adresse sous la forme d'une chaîne non structurée :
https://geocode.googleapis.com/v4beta/geocode/address/ADDRESS_STRING
Ou sous la forme d'un ensemble structuré de composants d'adresse représentés par des paramètres de requête :
https://geocode.googleapis.com/v4beta/geocode/address?STRUCTURED_ADDRESS
Vous utilisez généralement le format structuré lorsque vous traitez des composants d'adresse 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 et le masque de champ, dans les en-têtes dans le cadre de la requête GET.
Transmettre une chaîne d'adresse non structurée
Une adresse non structurée est une adresse formatée sous forme de chaîne ou de code Plus. Par exemple, l'exemple suivant transmet la chaîne d'adresse encodée en URL "1600 Amphitheatre Parkway, Mountain View, CA" :
https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA?key=API_KEY
Notez que le caractère "+" de l'URL est converti en espace.
Vous pouvez également envoyer la requête à l'aide d'une commande curl :
curl -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"
Les adresses peuvent contenir de nombreux types de caractères spéciaux. Par exemple, un "/" comme dans "7/1 King St, Concord West". Encodez l'URL en remplaçant "/" par %2F
:
https://geocode.googleapis.com/v4beta/geocode/address/7%2F1+King+St,+Concord+West?key=API_KEY
Un autre exemple courant est le caractère "#", comme dans "9500 W Bryn Mawr Ave #650, Rosemont". Encodez le caractère "#" en tant que %2FE
dans l'URL :
https://geocode.googleapis.com/v4beta/geocode/address/9500+W+Bryn+Mawr+Ave+%23650,+Rosemont?key=API_KEY
Dans l'exemple suivant, vous spécifiez une chaîne d'adresse non structurée comme code Plus 849VCWC8+R4
. Assurez-vous d'encoder le caractère "+" au format URL en le remplaçant par %2B
:
https://geocode.googleapis.com/v4beta/geocode/address/849VCWC8%2BR4?key=API_KEY
Transmettre une adresse structurée
Spécifiez une adresse structurée à l'aide du paramètre de requête address
, de type PostalAddress
.
L'objet PostalAddress
vous permet de spécifier tout ou partie des composants d'adresse dans la requête en tant que paramètres de requête individuels.
Par exemple, pour spécifier uniquement le code postal de l'adresse, utilisez PostalAddress.postalCode
:
https://geocode.googleapis.com/v4beta/geocode/address?address.postalCode=01062&key=API_KEY
Pour spécifier plusieurs composants d'adresse, par exemple des composants d'adresse capturés dans un formulaire HTML, utilisez plusieurs paramètres de requête :
https://geocode.googleapis.com/v4beta/geocode/address?address.addressLines=1600+Amphithreater+Pkwy&address.locality=Mountain+View &address.administrativeArea=CA &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 champ d'application approprié. L'API Geocoding est compatible avec les champs d'application suivants pour l'utilisation du géocodage direct :
https://www.googleapis.com/auth/maps-platform.geocode
— À utiliser avec tous les points de terminaison de l'API Geocoding.https://www.googleapis.com/auth/maps-platform.geocode.address
— À utiliser uniquement avecGeocodeAddress
pour le géocodage direct.
Vous pouvez également utiliser le champ d'application https://www.googleapis.com/auth/cloud-platform
général pour tous les points de terminaison de l'API Geocoding. Ce champ d'application est utile pendant le développement, mais pas en production, car il s'agit d'un champ d'application général qui permet d'accéder à tous les points de terminaison.
Pour en savoir plus et obtenir des exemples, consultez Utiliser OAuth.
Réponse de géocodage
Le géocodage renvoie un objet GeocodeAddressResponse
qui contient le tableau results
d'objets GeocodeResult
. Chaque objet GeocodeResult
représente un seul lieu.
L'objet JSON complet se présente sous la forme suivante :
{ "results": [ { "place": "//places.googleapis.com/places/ChIJF4Yf2Ry7j4AR__1AkytDyAE", "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE", "location": { "latitude": 37.422010799999995, "longitude": -122.08474779999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.420656719708511, "longitude": -122.08547523029148 }, "high": { "latitude": 37.4233546802915, "longitude": -122.0827772697085 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1600 Amphitheatre Pkwy" ] }, "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, ... ], "types": [ "street_address" ], "plusCode": { "globalCode": "849VCWC8+R4", "compoundCode": "CWC8+R4 Mountain View, CA, USA" } } ] }
Paramètres obligatoires
address
: adresse ou Plus Code que vous souhaitez géocoder. Indiquez les adresses au format utilisé par le service postal du pays concerné. Évitez d'ajouter des éléments d'adresse supplémentaires, comme le nom de l'entreprise, ou les numéros d'unité, de bureau ou d'étage. Les éléments d'adresse postale doivent être délimités par des espaces et encodés au format URL en%20
. Par exemple, transmettez l'adresse "24 Sussex Drive Ottawa ON" comme suit : Mettez en forme les Plus Codes comme indiqué ci-dessous. Les signes plus sont encodés au format URL en24%20Sussex%20Drive%20Ottawa%20ON
%2B
et les espaces en%20
:- Un code global est un indicatif de zone de 4 caractères et un code local à 6 caractères ou plus. Par exemple, encodez "849VCWC8+R9" en
849VCWC8%2BR9
. - Un code composé est un code local à six caractères ou plus associé à un emplacement explicite. Par exemple, encodez "CWC8+R9 Mountain View, CA, États-Unis"
en
CWC8%2BR9%20Mountain%20View%20CA%20USA
.
- Un code global est un indicatif de zone de 4 caractères et un code local à 6 caractères ou plus. Par exemple, encodez "849VCWC8+R9" en
Paramètres facultatifs
locationBias
Spécifie une zone de recherche sous la forme d'un
Viewport
. Cet emplacement sert de biais, ce qui signifie que des résultats autour de l'emplacement spécifié peuvent être renvoyés, y compris des résultats proches de la zone, mais en dehors.Spécifiez la région en tant que Viewport rectangulaire. Un rectangle est une fenêtre d'affichage de latitude et de longitude, représentée par deux points bas et haut diagonalement opposés. Le point bas marque l'angle sud-ouest du rectangle, et le point haut représente l'angle nord-est du rectangle.
Une fenêtre d'affichage est considérée comme une région fermée, ce qui signifie qu'elle inclut sa limite. Les limites de latitude doivent être comprises entre -90 et 90 degrés inclus, et les limites de longitude doivent être comprises entre -180 et 180 degrés inclus :
- Si
low
=high
, la fenêtre d'affichage se compose de ce seul point. - Si
low.longitude
>high.longitude
, la plage de longitude est inversée (la fenêtre d'affichage traverse la ligne de longitude de 180 degrés). - Si
low.longitude
= -180 degrés ethigh.longitude
= 180 degrés, la fenêtre d'affichage inclut toutes les longitudes. - Si
low.longitude
= 180 degrés ethigh.longitude
= -180 degrés, la plage de longitude est vide. - Si
low.latitude
>high.latitude
, la plage de latitude est vide.
Les valeurs basse et haute doivent être renseignées, et la boîte représentée ne peut pas être vide. Un viewport vide génère une erreur.
Par exemple, cette chaîne de requête définit une fenêtre d'affichage qui englobe entièrement la ville de New York :
?locationBias.rectangle.low.latitude=40.477398
&locationBias.rectangle.low.longitude=-74.259087 &locationBias.rectangle.high.latitude=40.91618 &locationBias.rectangle.high.longitude=-73.70018 - Si
languageCode
Langue dans laquelle renvoyer les résultats.
- Consultez la liste des langues disponibles. Google met souvent à jour les langues acceptées. Cette liste n'est donc pas exhaustive.
-
Si
languageCode
n'est pas fourni, l'API utiliseen
par défaut. Si vous spécifiez un code de langue non valide, l'API renvoie une erreurINVALID_ARGUMENT
. - L'API met tout en œuvre pour fournir une adresse postale lisible à la fois pour l'utilisateur et les habitants. Pour atteindre cet objectif, il 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 de votre choix, 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, ainsi que sur l'ordre dans lequel ils sont renvoyés. Le géocodeur interprète les abréviations différemment selon la langue, comme 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 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 géocodage d'une adresse (géocodage direct), ce paramètre peut influencer les résultats du service pour la région spécifiée, sans toutefois les limiter totalement. Lors du geocoding d'un lieu ou d'un endroit (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.
Biais de localisation
Utilisez le paramètre locationBias
pour demander au service Geocoding de privilégier les résultats à l'intérieur d'une fenêtre d'affichage donnée (exprimée sous la forme d'un cadre de délimitation).
Le paramètre locationBias
définit les coordonnées de latitude/longitude des angles sud-ouest et nord-est de ce cadre de délimitation.
Par exemple, une requête de geocoding pour l'adresse "Washington" peut renvoyer des résultats pour Washington, D.C. et pour l'État américain de Washington :
https://geocode.googleapis.com/v4beta/geocode/address/Washington?key=API_KEY
La réponse se présente sous la forme suivante :
{ "results": [ { "place": "//places.googleapis.com/places/ChIJW-T2Wt7Gt4kRKl2I1CJFUsI", "placeId": "ChIJW-T2Wt7Gt4kRKl2I1CJFUsI", "location": { "latitude": 38.9071923, "longitude": -77.0368707 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 38.7916449, "longitude": -77.119759 }, "high": { "latitude": 38.9958641, "longitude": -76.909393 } }, "bounds": { "low": { "latitude": 38.7916449, "longitude": -77.119759 }, "high": { "latitude": 38.9958641, "longitude": -76.909393 } }, "formattedAddress": "Washington, DC, USA", "addressComponents": [ { "longText": "Washington", "shortText": "Washington", "types": [ "locality", "political" ], "languageCode": "en" }, ... ], "types": [ "locality", "political" ] }, { "place": "//places.googleapis.com/places/ChIJ-bDD5__lhVQRuvNfbGh4QpQ", "placeId": "ChIJ-bDD5__lhVQRuvNfbGh4QpQ", "location": { "latitude": 47.7510741, "longitude": -120.7401386 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 45.543541, "longitude": -124.84897389999999 }, "high": { "latitude": 49.0024945, "longitude": -116.91607109999998 } }, "bounds": { "low": { "latitude": 45.543541, "longitude": -124.84897389999999 }, "high": { "latitude": 49.0024442, "longitude": -116.91607109999998 } }, "formattedAddress": "Washington, USA", "addressComponents": [ { "longText": "Washington", "shortText": "WA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, ... ], "types": [ "administrative_area_level_1", "political" ] } ] }
Toutefois, si vous ajoutez un paramètre locationBias
définissant un cadre de délimitation autour de la partie nord-est des États-Unis, le geocoding renvoie uniquement la ville de Washington, D.C.:
https://geocode.googleapis.com/v4beta/geocode/address/Washington?locationBias.rectangle.low.latitude=36.47&locationBias.rectangle.low.longitude=-84.72 &locationBias.rectangle.high.latitude=43.39 &locationBias.rectangle.high.longitude=-65.90 &key=API_KEY
Pondération de la région
Dans une requête de géocodage, vous pouvez demander au service Geocoding de renvoyer des résultats pondérés en faveur d'une région en particulier à l'aide du paramètre regionCode
. Ce paramètre accepte une valeur
code CLDR à deux caractères spécifiant le biais régional. La plupart des codes CLDR sont identiques aux codes ISO 3166-1.
regionCode
n'a pas de valeur par défaut. Par exemple, un geocode pour "Toledo" renvoie des résultats pour les États-Unis et pour l'Espagne :
https://geocode.googleapis.com/v4beta/geocode/address/Toledo?key=API_KEY
Response:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJeU4e_C2HO4gRRcM6RZ_IPHw", "placeId": "ChIJeU4e_C2HO4gRRcM6RZ_IPHw", "location": { "latitude": 41.652805199999996, "longitude": -83.5378674 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 41.579513, "longitude": -83.6944089 }, "high": { "latitude": 41.733036, "longitude": -83.4493851 } }, "bounds": { "low": { "latitude": 41.579513, "longitude": -83.6944089 }, "high": { "latitude": 41.733036, "longitude": -83.4493851 } }, "formattedAddress": "Toledo, OH, USA", "addressComponents": [ { "longText": "Toledo", "shortText": "Toledo", "types": [ "locality", "political" ], "languageCode": "en" }, ... ], "types": [ "locality", "political" ] }, { "place": "//places.googleapis.com/places/ChIJkwyrlqwLag0RiQIn2fdIshM", "placeId": "ChIJkwyrlqwLag0RiQIn2fdIshM", "location": { "latitude": 39.8628296, "longitude": -4.0273067 }, "granularity": "APPROXIMATE", "viewport": { "low": { "latitude": 39.8116682, "longitude": -4.179933 }, "high": { "latitude": 39.9251319, "longitude": -3.8148935 } }, "bounds": { "low": { "latitude": 39.8116682, "longitude": -4.179933 }, "high": { "latitude": 39.9251319, "longitude": -3.8148935 } }, "formattedAddress": "Toledo, España", "addressComponents": [ { "longText": "Toledo", "shortText": "Toledo", "types": [ "administrative_area_level_4", "political" ], "languageCode": "es" }, ... ], "types": [ "administrative_area_level_4", "political" ] }, ... ] }
Une requête de géocodage pour "Toledo" avec regionCode=es
(Espagne) ne renvoie que les résultats de l'Espagne :
https://geocode.googleapis.com/v4beta/geocode/address/Toledo?regionCode=es&key=API_KEY