Validation d'adresse et geocoding

Objectif

Vous devez souvent valider l'emplacement d'un lieu. Plusieurs services de Google Maps Platform peuvent vous aider à répondre à ce cas d'utilisation. Ce document vous aide à choisir entre les deux principaux services de validation de l'emplacement : l'API Address Validation et l'API Geocoding.

L'API Address Validation est une offre de Google Maps Platform qui aide les clients à vérifier si une adresse est exacte ou non.

Le geocoding avec l'API Geocoding consiste à convertir des adresses en coordonnées géographiques, que vous pouvez utiliser pour placer des repères sur une carte ou pour positionner celle-ci.

Pour une vue d'ensemble des différences entre Address Validation et l'API Geocoding, consultez cette page.

Quand choisir Address Validation plutôt que l'API Geocoding ?

Address-Validation-vs-Geocoding

Remarques concernant l'organigramme ci-dessus :

  • Le cas d'utilisation "Interaction utilisateur" fait référence à la présence d'un utilisateur pour interagir avec les résultats.
  • Places Autocomplete est une API JavaScript. Elle est donc adaptée à l'intégration aux interfaces utilisateur.
  • Vous avez peut-être connaissance de problèmes de qualité des données dans vos adresses existantes. Ainsi, même si vous ne souhaitez que des géocodes, il est conseillé d'exécuter ces emplacements via l'API Address Validation pour corriger les ensembles de données.

En fonction de l'arbre de décision ci-dessus, vous pouvez choisir d'utiliser un produit plutôt qu'un autre dans de nombreuses situations. Toutefois, dans d'autres situations, vous devrez peut-être utiliser les deux produits pour atteindre vos objectifs.

Vous pouvez choisir d'utiliser l'API Address Validation plutôt que l'API Geocoding dans les cas suivants :

  • Il existe un risque élevé de données douteuses, ou l'obtention d'une adresse incorrecte aura un impact négatif en aval. En effet, l'API Address Validation fournit plus de commentaires sur les raisons pour lesquelles une entrée n'a pas reçu de résultat de haute précision.
  • Vous devez corriger les entrées utilisateur (par exemple, les fautes d'orthographe ou les champs manquants), ce qui augmente la probabilité d'obtenir un résultat précis en sortie.
  • Votre région cible renvoie plus de métadonnées de l'API Address Validation que de l'API Geocoding, comme la classification du type de bâtiment (résidentiel ou commercial).

Vous pouvez choisir d'utiliser l'API Geocoding plutôt que l'API Address Validation dans les cas suivants :

  • Votre objectif principal est de récupérer l'emplacement d'une adresse, et la précision des adresses individuelles n'est peut-être pas essentielle.
    • Par exemple, vous pouvez générer une carte de densité à partir d'un grand ensemble de données.
  • Vous avez besoin d'informations hyper-locales sur la destination, comme les entrées de bâtiments, les contours de bâtiments ou les points de navigation pour la prise en charge et la dépose (disponibles avec la méthode SearchDestinations dans l'API Geocoding v4).
  • Vous avez besoin d'une solution globale, et l'API Address Validation n'est pas disponible dans toutes les régions cibles.

Voici quelques exemples qui illustrent les fonctionnalités de l'API Address Validation par rapport à l'API Geocoding.

Exemple d'adresse non valide

1 Fake St, Mountain View, CA 94043, États-Unis

L'API Address Validation décompose cette entrée en composants d'adresse individuels (rue, ville, État, etc.). Elle peut également fournir des commentaires précis sur les raisons pour lesquelles l'adresse n'est pas valide, jusqu'au niveau PREMISE.

"Fake St" n'existe pas à Mountain View, en Californie, et l'API Address Validation le reflète dans les détails renvoyés au niveau des composants :

{
  "componentName": {
    "text": "Fake St",
    "languageCode": "en"
   },
   "componentType": "route",
   "confirmationLevel":"UNCONFIRMED_BUT_PLAUSIBLE"
 }

Dans ce cas, la propriété importante à inspecter est confirmationLevel. En renvoyant UNCONFIRMED_BUT_PLAUSIBLE pour "Fake St", l'API a déterminé qu'une rue pouvait porter ce nom, mais qu'il n'était pas possible de la faire correspondre aux données d'adresse associées.

En utilisant le résultat de l'API comme commentaire, on peut en déduire que le composant de rue de cette entrée (Fake St) est en cause.

En utilisant la même adresse avec l'API Geocoding, il est possible d'établir une correspondance avec "California", comme illustré dans la capture d'écran suivante de l'outil Geocoder :

alt_text

Toutefois, le résultat est un géocode de l'État entier, avec un minimum d'informations sur les composants de l'entrée qui étaient potentiellement défectueux.

Exemple de faute d'orthographe

76 Buckingamm Palace Road, Londn, SW1W 9TQ, GB

L'adresse ci-dessus contient deux fautes d'orthographe : une dans le nom de la rue et l'autre dans la localité.

Les API Address Validation et Geocoding peuvent toutes deux corriger ces erreurs et obtenir le résultat "76 Buckingham Palace Road, London, SW1W 9TQ". Toutefois, l'API Address Validation peut fournir plus d'informations sur le processus.

Examinons l'un des composants d'adresse qui a été mal orthographié lors de la saisie :

{
  "componentName": {
    "text": "Buckingham Palace Road",
    "languageCode": "en"
        },
        "componentType": "route",
        "confirmationLevel": "CONFIRMED",
        "spellCorrected": true
     }
}

L'API Address Validation renvoie un indicateur pour signaler qu'une correction a été apportée au champ. La logique métier peut être implémentée par rapport à ce flag pour vérifier la correction auprès du fournisseur de données, par exemple un client lors du paiement d'un achat en ligne.

Exemple de données manquantes et d'erreur d'orthographe

Bollschestraße 86, 12587, DE

L'adresse ci-dessus comporte une faute d'orthographe dans le nom de la rue, et la ville (localité) de Berlin est manquante.

L'API Address Validation peut corriger ces deux erreurs et renvoie un code géographique au niveau PREMISE, ainsi qu'une adresse validée au niveau PREMISE :

Bölschestraße 86, 12587 Berlin, DE

L'API Geocoding ne parvient pas à corriger les erreurs de saisie dans ce cas et renvoie un résultat ZERO_RESULTS.

Exemple de métadonnées d'adresse supplémentaires

111 8th Avenue Ste 123, New York, NY 10011-5201, États-Unis

Cette adresse est correcte, à l'exception du numéro d'appartement (Ste 123), qui n'existe pas dans le bâtiment.

L'API Address Validation peut valider l'adresse jusqu'au niveau PREMISE (111 8th Ave) et fournir des métadonnées sur la propriété, y compris le fait qu'il s'agit d'un bâtiment commercial.

site :

"business": true

De plus, la valeur dpvConfirmation renvoyée dans uspsData dans la réponse est S :

"dpvConfirmation": "S"

Une valeur dpvConfirmation de S indique que l'adresse est validée au niveau PREMISE, mais que le numéro d'appartement fourni dans l'entrée n'est pas associé à cette adresse.

L'API Geocoding ne peut pas fournir ces informations.

Comprendre la réponse de l'API Geocoding

Présentation

Si vous utilisez l'API Geocoding, le résultat du géocodage contient divers indices dans la réponse, qui peuvent être utilisés pour comprendre les détails de l'adresse fournie.

L'API Geocoding fonctionne en résolvant les composants d'adresse selon une hiérarchie.

Par exemple, 123 Example Street, Chicago, 60007, USA est résolu dans l'ordre suivant :

/ Example Street/ Chicago/ 60007/ USA seront évaluées dans cet ordre. Dans ce cas, la première correspondance est Chicago et, plus précisément, le code postal 60007. Par conséquent, il renvoie l'ID de lieu suivant pour ce code postal :

ChIJwRKzf8ixD4gRHiXqucwr_HQ

La réponse de l'API Geocode contient les informations suivantes :

        "partial_match": true,
           "place_id": "ChIJwRKzf8ixD4gRHiXqucwr_HQ",
           "types": [
               "postal_code"
           ]

L'API Geocoding peut confirmer à quel type de lieu cette adresse appartient. Pour obtenir la liste des types d'adresse renvoyés par l'API Geocoding, cliquez ici.

Si aucun des composants de l'entrée n'est résolu, l'API renvoie :

{
   "results": [],
   "status": "ZERO_RESULTS"
}

Une requête contenant uniquement une adresse postale sans numéro de rue renvoie un résultat au format suivant :

"types": [
  "route"
]

Cela signifie que l'API Geocoding n'a pas pu trouver de numéro de rue ou n'a pas pu en faire correspondre un.

Remarque : Pour savoir si une adresse existe, vérifiez si l'un des paramètres (comme types ou partial_match, results, status)) est défini dans la réponse de l'API Geocoding. Cela augmentera progressivement le niveau de confiance quant à l'existence d'une adresse, mais ne la rendra pas exacte à 100 %. C'est pourquoi nous avons besoin de l'API Address Validation.

Vous pouvez utiliser les techniques ci-dessus pour augmenter la confiance dans la précision des adresses à partir d'une réponse de l'API Geocoding seule. Cependant, contrairement à l'API Address Validation, l'API Geocoding ne renvoie pas de commentaires exacts pour déterminer la précision du résultat.

Type d'emplacement

Pour bien comprendre cette section, vous devez comprendre les différents types d'emplacement qui peuvent être renvoyés par une réponse de l'API Geocoding :

  • ROOFTOP indique que le résultat renvoyé est un geocode précis pour lequel nous disposons d'informations de localisation précises jusqu'à l'adresse postale.
  • RANGE_INTERPOLATED indique que le résultat renvoyé reflète une approximation (généralement sur une route) interpolée entre deux points précis (des intersections, par exemple). Les résultats interpolés sont généralement renvoyés lorsque le géocodage rooftop est indisponible pour une adresse postale.
  • GEOMETRIC_CENTER indique que la réponse renvoyée est le centre géométrique d'un résultat, comme une polyligne (par exemple, une rue) ou un polygone (une région).
  • APPROXIMATE indique que le résultat renvoyé ne correspond à aucune des valeurs ci-dessus.

Si l'API Geocoding renvoie un location_type de ROOFTOP ou RANGE_INTERPOLATED, cela ne signifie pas nécessairement que l'adresse existe. De même, si une API Geocoding renvoie le flag partial_match défini sur true, il peut s'agir du bon résultat pour vous.

Ce type de correspondance incorrecte est un problème très difficile à résoudre avec l'API Geocoding. Au minimum, vous pouvez envisager d'implémenter une validation de post-traitement de base sur le pays et la localité de la requête/réponse. Mieux encore, comparez les adresses postales réelles pour détecter les fautes d'orthographe et/ou les adresses incomplètes.

Remarque : Si vous décidez d'utiliser l'API Geocoding, nous vous recommandons de vérifier régulièrement la qualité des données entre la requête initiale et la réponse de l'API Geocoding.

Correspondance partielle et fausse correspondance

Si une adresse correspond partiellement, ce qui signifie que l'API Geocoding n'a pas pu l'identifier exactement, la réponse contient :

"partial_match": true,
"types": [
           "locality",
           "political"
         ]

Il est encore plus important que les types d'emplacement ci-dessus de prendre en compte les cas où partial_match = true est dans la réponse. partial_match indique que l'API Geocoding n'a pas renvoyé de correspondance exacte pour la requête d'origine, bien qu'elle ait pu trouver une partie de l'adresse demandée.

Nous vous recommandons d'examiner la requête d'origine pour vérifier que l'adresse est bien complète. Les correspondances partielles sont souvent renvoyées lorsque l'adresse postale n'existe pas dans la localité indiquée dans la requête. Les correspondances partielles peuvent aussi être renvoyées lorsqu'une requête correspond à plusieurs lieux au sein de la même localité.

Par exemple, "21 Henr St, Bristol, UK" renvoie une correspondance partielle pour Henry Street et Henrietta Street. Notez que si une requête comprend un composant d'adresse mal saisi, l'API Geocoding peut suggérer une autre adresse. Les suggestions déclenchées de cette façon ne sont pas signalées comme des correspondances partielles.

Adresses synthétiques

L'API Geocoding peut renvoyer des emplacements pour des adresses "synthétiques" qui n'existent pas en tant qu'emplacements précis dans la base de données de Google.

Dans ce cas, l'objet de réponse contient souvent un ID de lieu long et la propriété suivante : geometry.location_type=APPROXIMATE.

Si vous rencontrez ces indicateurs dans la réponse, envisagez de marquer l'adresse d'entrée comme non valide et essayez de la revalider par un autre moyen.

Remarque : Il s'agit d'un autre exemple où l'API Address Validation vous indique directement si une adresse n'existe pas.

Comprendre la réponse de l'API Address Validation

Il existe déjà une excellente documentation sur l'interprétation des réponses de l'API Address Validation. Nous n'entrerons donc pas dans les détails ici.

  • Pour en savoir plus sur l'objet de réponse, cliquez ici.
  • Une démonstration illustrant les différents composants de la réponse est disponible sur cette page.
  • Le document Address Validation for checkout (Validation d'adresse pour le paiement) décrit en détail comment différencier les adresses correctes des adresses incorrectes.

Bonnes pratiques

Spécifier la zone géographique

Lorsque vous appelez les API Address Validation ou l'API Geocoding, nous vous recommandons d'essayer de limiter la zone géographique dans laquelle rechercher l'adresse. Les deux API implémentent cela de deux manières différentes :

  • API Geocoding – Préférence de région

    Si vous savez que les géocodes se trouveront dans un pays spécifique, vous obtiendrez de bien meilleurs résultats en utilisant la pondération par région. Par exemple, si vous effectuez un géocodage au Canada, nous vous recommandons d'ajouter &region=ca à vos requêtes pour privilégier le Canada. Veuillez noter que la pondération par région ne fait que privilégier les résultats de cette région. Vous pouvez toujours obtenir des résultats en dehors de la région.

  • API Address Validation – Code de région

    De même, l'API Address Validation produit des résultats plus précis si un code ISO2 est transmis dans la requête, à l'aide du champ regionCode.

Stocker les ID de lieu

Pour stocker des informations Google Maps Platform sur l'établissement pour les requêtes futures, vous pouvez stocker l'ID de lieu indéfiniment dans votre base de données en tant qu'attribut de l'établissement. Vous n'avez besoin d'exécuter une requête Find Place qu'une seule fois par ID de lieu. Vous pouvez également rechercher l'ID de lieu chaque fois qu'un utilisateur demande des détails de la transaction.

Pour toujours fournir des informations à jour, actualisez les ID de lieu tous les 12 mois à l'aide d'une requête Place Details avec le paramètre place_id.

Remarque : Veuillez également consulter le guide des bonnes pratiques pour le geocoding.

Conclusion

Ce document décrit les principales différences entre les API Address Validation et Geocoding. En résumé, envisagez d'utiliser l'API Address Validation dans les cas suivants :

  • Une adresse postale exacte est requise, en particulier pour la livraison.
  • Les données d'entrée sont de mauvaise qualité. L'API Address Validation est plus tolérante aux erreurs de saisie, met en évidence les composants d'adresse non vérifiables et corrige les données d'entrée.
  • Des informations supplémentaires sont requises pour une adresse, par exemple s'il s'agit d'une adresse résidentielle ou commerciale (disponible dans certaines régions).

Étapes suivantes

Téléchargez le livre blanc Améliorez les processus de paiement, de livraison et les opérations avec des adresses fiables et regardez le webinaire Améliorez les processus de paiement, de livraison et les opérations avec Address Validation .

Suggestions de lectures complémentaires :

Contributeurs

Google gère cet article. Les contributeurs suivants l'ont écrit à l'origine.

Auteurs principaux :

Henrik Valve | Ingénieur solutions

Thomas Anglaret | Ingénieur solutions

Sarthak Ganguly | Ingénieur solutions