Géocoder des adresses - Meilleures pratiques

Le geocoding consiste à convertir des adresses (comme une adresse postale) en coordonnées géographiques (latitude et longitude) que vous pouvez utiliser pour placer des repères sur une carte ou pour positionner celle-ci. L'objectif de ce document est de clarifier les considérations à prendre en compte lors du géocodage des adresses. Il décrit les cas où il est optimal d'utiliser l'API Geocoding et les cas où il est avantageux d'utiliser le service Place Autocomplete de l'API Places.

En règle générale, utilisez l'API Geocoding pour géocoder des adresses complètes (par exemple, "48 Pirrama Rd, Pyrmont, NSW, Australia"). Utilisez le service Place Autocomplete de l'API Places lorsque vous géocodez des adresses ambiguës (incomplètes) ou pour des applications sensibles à la latence, par exemple lorsque vous répondez à une entrée utilisateur.

Cas d'utilisation et recommandations d'API

Cas d'utilisation et recommandations d'API
Répondre en temps réel aux entrées utilisateur (y compris les adresses ambiguës, incomplètes, mal formatées ou mal orthographiées saisies par un utilisateur) Utilisez le service Place Autocomplete de l'API Places pour obtenir un ID de lieu, puis l'API Geocoding pour géocoder l'ID de lieu en latlng.
Systèmes automatisés qui traitent des adresses postales complètes, sans ambiguïté (par exemple, "48 Pirrama Rd, Pyrmont, NSW, Australie") Utilisez le service Web de l'API Geocoding.
Systèmes automatisés qui traitent des requêtes ambiguës (par exemple, des adresses incomplètes, mal formatées ou mal orthographiées) Recommandez aux systèmes automatisés d'utiliser le service Web de l'API Geocoding. Toutefois, les systèmes automatisés présentant un taux élevé de requêtes ambiguës, incomplètes ou mal orthographiées issues de la saisie utilisateur peuvent bénéficier de l'ajout d'un widget Place Autocomplete interactif pour permettre aux utilisateurs de sélectionner un résultat et ainsi d'éviter de mal orthographier une adresse.
Problèmes de latence lors de l'utilisation de l'API Directions ou de l'API Distance Matrix, avec des points de départ, de destination ou d'étape spécifiés sous forme de chaînes d'adresse Réduisez la latence de géocodage en utilisant le service Place Autocomplete de l'API Places pour obtenir des ID de lieu, puis transmettez-les à l'API Directions ou à l'API Distance Matrix.

Répondre aux entrées utilisateur

Les applications qui répondent en temps réel aux entrées utilisateur doivent prendre en compte deux éléments principaux qui affectent le choix de l'API:

  1. La saisie utilisateur implique généralement de saisir une adresse progressivement (par exemple, "123, rue Principale"). Il est donc utile de pouvoir géocoder les adresses incomplètes et ambiguës, car cela permet à l'utilisateur d'obtenir un résultat plus rapidement.
  2. La latence est un facteur très important pour les applications qui répondent à la saisie de l'utilisateur.

Ces deux considérations font que le service Place Autocomplete de l'API Places est idéal pour le cas d'utilisation consistant à répondre à l'entrée utilisateur. La saisie semi-automatique de lieux est conçue pour renvoyer plusieurs options possibles et permettre à l'utilisateur de choisir entre elles. L'API Places peut être limitée à la recherche de codes géographiques ou d'adresses, en excluant les établissements. De plus, la fonction de recherche de saisie semi-automatique peut être biaisée pour renvoyer des résultats spécifiques à un lieu. L'API Places renvoie un ID de lieu qui peut être transmis en tant qu'emplacement entièrement déambiguïsé au service Web de l'API Geocoding, qui renvoie ensuite les informations complètes sur l'adresse et géocode l'adresse en latlng. Les ID de lieu peuvent également être transmis à d'autres API, telles que l'API Directions et l'API Distance Matrix (voir ci-dessous).

Le géocodage d'adresses dans l'API Geocoding présente une latence beaucoup plus élevée et produit également des résultats moins précis pour les requêtes incomplètes ou ambiguës. Il n'est donc pas recommandé pour les applications qui doivent répondre en temps réel aux entrées utilisateur.

En savoir plus sur le service Place Autocomplete pour Android, iOS, JavaScript et l' API Places

Systèmes automatisés

Systèmes automatisés traitant des adresses postales complètes et sans ambiguïté: les requêtes sans ambiguïté, telles que des chaînes d'adresses postales complètes (par exemple, "48 Pirrama Rd, Pyrmont, NSW, Australia") sont mieux gérées par le service Web de l'API Geocoding. Le backend de géocodage des adresses offre une meilleure couverture des adresses dans le monde entier et est optimisé pour fournir des résultats de haute qualité avec ces types de requêtes complètes et sans ambiguïté.

Traitement automatique des requêtes ambiguës : les requêtes ambiguës sont celles qui contiennent des adresses mal formatées, des adresses incomplètes ou des fautes d'orthographe. Pour les systèmes automatisés, nous vous recommandons d'utiliser le service Web de l'API Geocoding. Toutefois, l'API Geocoding n'est pas conçue pour gérer les requêtes ambiguës et peut produire des résultats moins précis ou aucun résultat en réponse à des requêtes ambiguës. Si votre système automatisé traite un taux élevé de requêtes ambiguës dérivées de la saisie utilisateur, vous pouvez ajouter un élément interactif à votre application à l'aide du service Place Autocomplete de l'API Places, car il est conçu pour renvoyer plusieurs options possibles et permettre à l'utilisateur de choisir entre elles. L'API Places renvoie un ID de lieu qui peut être transmis en tant que position entièrement déambiguïsée au service Web de l'API Geocoding, qui renvoie ensuite les informations complètes sur l'adresse et géocode l'adresse en latlng. En savoir plus sur le service Place Autocomplete pour Android, iOS, JavaScript et l' API Places

Réduire la latence pour l'API Directions et l'API Distance Matrix

Lorsque des points de départ, de destination ou de cheminement sont spécifiés sous forme de chaînes d'adresse, l'API Directions et l' API Distance Matrix utilisent le même backend que l'API Geocoding pour géocoder ces adresses avant de calculer un itinéraire. Cela augmente considérablement la latence par rapport à la spécification des mêmes emplacements que les latlngs ou les ID de lieu.

Si votre application utilise l'API Directions ou l'API Distance Matrix dans une situation sensible à la latence, comme la réponse à une entrée utilisateur, et que vos points de départ, d'arrivée ou de repère sont initialement spécifiés sous forme de chaînes d'adresse, nous vous recommandons de réduire la latence en utilisant le service de saisie semi-automatique de l'API Places pour convertir les chaînes d'adresse en identifiants de lieu, puis de transmettre les identifiants de lieu à l'API Directions ou à l'API Distance Matrix. En savoir plus sur le service Place Autocomplete pour Android, iOS, JavaScript et l' API Places Consultez également un exemple JavaScript de saisie semi-automatique des lieux et d'itinéraires.

Conclusion

Selon votre cas d'utilisation, lorsque vous géocodez des adresses, l'utilisation de l'API Geocoding ou du service Place Autocomplete en combinaison avec l'API Geocoding vous permet de créer des applications qui offrent aux utilisateurs des résultats de géocodage précis et une latence réduite.

Gérer les erreurs et les nouvelles tentatives

Si vous recevez des réponses UNKNOWN_ERROR, elles sont causées par des erreurs temporaires et la meilleure solution consiste à réessayer après un court délai. Nous vous recommandons d'utiliser les bibliothèques clientes des services Web Google Maps Platform, qui incluent une logique de nouvelle tentative et prennent en charge l'authentification du forfait Premium Google Maps Platform. Le client Java, le client Python, le client Go et le client Node.js pour les services Google Maps sont des bibliothèques clientes alimentées par la communauté, disponibles en téléchargement et pour les contributions sur GitHub, où vous trouverez également des instructions d'installation et un exemple de code.

Si vous recevez un code d'état OVER_QUERY_LIMIT en guise de réponse, vous avez dépassé les limites d'utilisation de l'API. Nous vous recommandons d'essayer ces stratégies d'optimisation de l'utilisation.