Die Nutzung Ihres Schlüssels überwachen, bevor Sie an ein Limit stoßen
Wenn Sie Ihre Kontingent-Header laufend beobachten, wissen Sie, wann ein Limit näher rückt, lange bevor eine Anfrage tatsächlich abgelehnt wird.
Die Geokodierung (Adresse zu Koordinaten) ist für unstrukturierten Freitext gebaut, was bedeutet, dass sie im Hintergrund Arbeit leistet, um herauszufinden, um welche Art von Eingabe es sich handelt. Wenn Sie bereits wissen, dass Sie eine saubere Postleitzahl und ein Land haben, gibt es einen direkteren Weg.
Statt eine Freitext-Zeichenfolge zusammenzusetzen und an /v1/forward zu senden, senden Sie Postleitzahl und Land direkt an /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"}}
]
}Ein Paar aus Postleitzahl und Land ist bereits vollständig strukturierte Eingabe, daher gibt es für den Endpunkt keine Mehrdeutigkeit aufzulösen, wie es bei einer Freitext-Zeichenfolge der Fall sein kann, die auf mehrere ähnlich benannte Orte passen könnte. Wenn Sie den Endpunkt verwenden, der genau für diese Form der Eingabe gebaut ist, erhalten Sie einen saubereren Treffer mit geringerem Risiko eines unerwarteten Ergebnisses.
Derselbe Aufruf funktioniert genauso für ein Land, das Buchstaben und Ziffern gemeinsam statt nur Ziffern verwendet.
GET /v1/postcode?code=K1A 0B1&country=CADie Übergabe des Parameters country macht das zuverlässig, denn eine Postleitzahl allein ist nicht immer länderübergreifend eindeutig, und der Parameter country teilt dem Endpunkt mit, nach welchem Postleitzahlensystem er sie interpretieren soll.
Wenn Sie einen konkreten Treffer auf Straßenebene statt des allgemeinen Gebiets einer Postleitzahl benötigen, ist die Geokodierung (Adresse zu Koordinaten) mit der vollständigen Adresse weiterhin das richtige Werkzeug, denn eine Postleitzahlabfrage liefert das Gebiet, das die Postleitzahl abdeckt, und kein bestimmtes Gebäude darin. Verwenden Sie /v1/postcode für Abfragen auf Gebietsebene, etwa um eine Versandzone zu validieren, und /v1/forward, wenn Sie Genauigkeit auf Hausnummernebene brauchen.
Gehen Sie nicht davon aus, dass eine Postleitzahl immer genau einem Punkt entspricht, der jede Adresse darin exakt repräsentiert. Die von /v1/postcode zurückgegebenen Koordinaten stehen für das von der Postleitzahl abgedeckte Gebiet, das ein einzelner Häuserblock oder in manchen Ländern eine viel größere Zone sein kann. Wenn Sie diesen zurückgegebenen Punkt so behandeln, als wäre er der exakte Standort des Gebäudes eines bestimmten Kunden, statt eines repräsentativen Punkts für die gesamte Postleitzahl, bringen Sie Fehler in alles, was darauf aufbauend von Entfernungen abhängt.
Ein gängiges Muster ist, zuerst das Paar aus Postleitzahl und Land mit /v1/postcode zu validieren und dann, sobald das erfolgreich war, die vollständige Straßenadresse an /v1/forward zu senden, um exakte Koordinaten zu erhalten. Das sind zwei Anfragen pro Einsendung, eine für jede Stufe, statt einen Endpunkt zu zwingen, beide Aufgaben zu übernehmen.
Ein leeres results-Array bedeutet, dass die Postleitzahl für das angegebene Land nicht erkannt wurde, was eine andere Situation ist als eine Fehlerantwort. Behandeln Sie es wie jede andere nicht erkannte Eingabe, indem Sie den Kunden bitten, seine Eingabe noch einmal zu prüfen, statt es als Systemfehler anzuzeigen.
Jede Postleitzahlabfrage ist eine Anfrage und kostet genauso viel wie eine Geokodierungsabfrage. Die Wahl des richtigen Endpunkts für strukturierte Eingaben ändert nichts an den Kosten, sondern daran, wie direkt Sie zu einem korrekten Ergebnis gelangen.
Wenn Sie bei bereits sauberer, strukturierter Eingabe zum Postleitzahl-Endpunkt greifen, vermeiden Sie die zusätzliche Mehrdeutigkeit, die entsteht, wenn Sie eine Freitext-Zeichenfolge nur zusammensetzen, um sie danach wieder zu zerlegen. Alle Details finden Sie in der Dokumentation zur Postleitzahlabfrage.