Surveillez l'utilisation de votre clé avant d'atteindre une limite
Surveiller vos en-têtes de quota au fil de l'eau vous indique quand une limite approche, bien avant qu'une requête ne soit effectivement refusée.
Le géocodage direct est conçu pour traiter du texte libre désordonné, ce qui signifie qu'il travaille en coulisses pour déterminer quel type de saisie il a sous les yeux. Si vous savez déjà que vous disposez d'un code postal propre et d'un pays, il existe une voie plus directe.
Plutôt que d'assembler une chaîne de texte libre et de l'envoyer à /v1/forward, envoyez directement le code et le pays à /v1/postcode.
GET /v1/postcode?code=90210&country=US{
"status": "ok",
"postcode": "90210",
"country_code": "US",
"results": [
{"lat": 34.0901, "lon": -118.4065, "components": {"city": "Beverly Hills", "region": "CA", "country": "US"}}
]
}Un couple code postal et pays est déjà une donnée entièrement structurée : l'endpoint n'a donc aucune ambiguïté à lever, contrairement à une chaîne de texte libre qui pourrait correspondre à plusieurs lieux au nom similaire. En utilisant l'endpoint conçu précisément pour ce format de données, vous obtenez une correspondance plus nette avec moins de risque de résultat inattendu.
Le même appel fonctionne de la même manière pour un pays qui utilise à la fois des lettres et des chiffres plutôt que des chiffres seuls.
GET /v1/postcode?code=K1A 0B1&country=CAC'est le paramètre country qui rend l'opération fiable, car une chaîne de code seule n'est pas toujours unique d'un pays à l'autre, et c'est ce paramètre qui indique à l'endpoint selon quel système postal l'interpréter.
Si vous avez besoin d'une correspondance précise au niveau de la rue plutôt que de la zone générale couverte par un code postal, le géocodage direct avec l'adresse complète reste le bon outil, car une recherche par code postal renvoie la zone couverte par le code, et non un bâtiment précis à l'intérieur de celle-ci. Utilisez /v1/postcode pour les recherches au niveau d'une zone, comme la validation d'une zone de livraison, et /v1/forward lorsque vous avez besoin d'une précision au niveau du numéro de rue.
Ne partez pas du principe qu'un code postal correspond toujours à un seul point représentant précisément chaque adresse qu'il contient. Les coordonnées renvoyées par /v1/postcode représentent la zone couverte par le code, qui peut être un simple pâté de maisons ou, dans certains pays, une zone bien plus vaste. Traiter ce point comme l'emplacement exact du bâtiment d'un client donné, plutôt que comme un point représentatif de l'ensemble du code, introduira des erreurs dans tout ce qui, construit par-dessus, dépend des distances.
Une approche courante consiste à valider d'abord le couple code postal et pays avec /v1/postcode, puis, une fois cette étape passée, à envoyer l'adresse complète à /v1/forward pour obtenir les coordonnées exactes. Cela fait deux requêtes par soumission, une pour chaque étape, plutôt que d'essayer de forcer un seul endpoint à faire les deux tâches.
Un tableau results vide signifie que le code n'a pas été reconnu pour le pays indiqué, ce qui est une situation différente d'une réponse d'erreur. Traitez-le comme toute autre saisie non reconnue, en demandant au client de vérifier ce qu'il a saisi, plutôt que de l'afficher comme une erreur système.
Chaque recherche par code postal compte pour une requête, le même coût qu'une recherche en géocodage direct. Choisir le bon endpoint pour une donnée structurée ne change pas ce que cela coûte, cela change la rapidité avec laquelle vous obtenez un résultat correct.
Utiliser l'endpoint postcode lorsque vous disposez déjà d'une donnée propre et structurée évite l'ambiguïté supplémentaire qui accompagne la reconstruction d'une chaîne de texte libre, uniquement pour la décomposer à nouveau. Tous les détails figurent dans la documentation de la recherche par code postal.