Deux paires de coordonnées peuvent sembler parfaitement identiques sur le papier et signifier des choses très différentes selon leur provenance. L'une peut être une lecture GPS directe d'un appareil situé exactement à cet endroit. L'autre peut être le centroïde d'une ville, renvoyé parce que c'était la meilleure correspondance disponible pour une adresse partielle ou ambiguë. Imprimées sous forme de simples nombres, les deux paraissent aussi précises l'une que l'autre. Seules les métadonnées qui les accompagnent vous disent laquelle est vraiment fiable pour un usage à grain fin.
C'est la raison fondamentale pour laquelle « il suffit d'utiliser lat et lon » est une réelle simplification excessive dès que la source et la précision des coordonnées comptent pour ce que vous construisez. Une paire de coordonnées seule ne dit rien de la façon dont elle a été obtenue, de la surface qu'elle représente ni du degré de confiance de la source dans la correspondance. Traiter chaque paire de coordonnées comme également fiable, quelle que soit son origine, c'est ainsi que des applications finissent par prendre discrètement des décisions, comme acheminer une livraison ou déclencher une alerte géolocalisée, sur la base de ce qui n'est en réalité qu'une approximation à l'échelle de la ville plutôt qu'un point précis.
C'est exactement l'écart que les champs precision et confidence sont conçus pour combler. La précision vous indique quel type de correspondance a produit la coordonnée, logement, rue, code postal ou ville, ce qui implique directement la surface réelle que ce point représente vraisemblablement. La confiance vous indique à quel point la correspondance elle-même était sûre, indépendamment de son niveau de précision. Ensemble, elles transforment une simple paire de coordonnées en quelque chose sur quoi vous pouvez réellement raisonner : non plus seulement « voici un point », mais « voici un point, voici à peu près la précision qu'il revendique, et voici à quel point nous sommes sûrs que cette revendication est correcte ».
L'habitude pratique à intégrer dans tout système qui stocke ou transmet des coordonnées entre services consiste à transporter la précision et la confiance avec les valeurs brutes, et pas seulement les valeurs seules. Si une paire de coordonnées est transmise à une base de données, une file d'attente ou un autre service interne sans ce contexte, quiconque l'utilise en aval perd la capacité de décider en connaissance de cause du degré de confiance à lui accorder, et la traitera probablement par défaut comme plus précise qu'elle ne l'est, puisqu'une paire de coordonnées isolée ne donne aucun signal contraire.
C'est exactement pour cette raison que chaque résultat de géocodage de nos endpoints de géocodage direct et inverse inclut type, precision et confidence à côté des coordonnées. Faire passer toutes ces informations dans votre propre chaîne de traitement, et pas seulement la latitude et la longitude, permet à tout système situé plus en aval de porter le même jugement éclairé que celui dont disposait votre application au moment de la recherche initiale.
Une adresse dans un centre-ville bien cartographié ne vous apprend presque rien sur la façon dont votre système gère une route rurale, une frontière contestée ou une requête près des pôles. Testez délibérément les cas difficiles.
Tous les jeux de données contenant des informations de localisation apparemment publiques ne peuvent pas légalement être utilisés dans un produit payant. Ce sont souvent les conditions de licence, et non la disponibilité technique, qui fixent la véritable limite.
Lorsqu'une requête ne peut réellement pas être résolue de manière fiable, ne rien renvoyer est une meilleure réponse que renvoyer une supposition présentée comme un fait. Voici le raisonnement derrière ce choix.