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.
Nicht jede Adresse hat eine Hausnummer. Ländliche Zustellrouten, manche Neubaugebiete und bekannte Sehenswürdigkeiten werden oft ohne eine bezeichnet, und eine Geokodierungsanfrage, die jedes Mal eine Hausnummer erwartet, wird falsch einschätzen, wie ein gültiges Ergebnis in diesen Fällen aussieht.
GET /v1/forward?q=Golden Gate Bridge, San Francisco&limit=1{
"status": "ok",
"query": "Golden Gate Bridge, San Francisco",
"results": [
{
"formatted": "Golden Gate Bridge, San Francisco, CA",
"lat": 37.8199,
"lon": -122.4783,
"type": "address",
"precision": "street",
"confidence": 0.9,
"place_id": "gb567",
"components": {"city": "San Francisco", "region": "CA", "country": "US"}
}
]
}Beachten Sie, dass es hier kein Feld house_number in components gibt und precision „street“ statt „house“ lautet. Beides ist bei einer Adresse, die tatsächlich keine Hausnummer hat, zu erwarten und kein Zeichen für eine fehlgeschlagene oder unvollständige Abfrage.
Verstehen Sie precision als Beschreibung, wie spezifisch der Treffer ist, und nicht als Fehlerindikator. Eine Präzision „house“ bedeutet, dass der Treffer auf ein bestimmtes Gebäude aufgelöst wurde. Eine Präzision „street“ bedeutet, dass er auf eine Straße oder einen Punkt entlang dieser Straße aufgelöst wurde, ohne ein genaues Gebäude festzulegen, was für eine Sehenswürdigkeit oder eine Adresse ohne Hausnummer genau richtig ist.
GET /v1/forward?q=Central Park, New York&limit=1Ein benannter öffentlicher Platz wie dieser wird typischerweise mit einem Wert für type aufgelöst, der weiter gefasst ist als „address“, und mit einer Präzision, die eher eine Fläche als einen einzelnen Punkt widerspiegelt, zusammen mit einem Objekt components, das möglicherweise nur Stadt und Region enthält. Das ist dasselbe Muster wie beim Beispiel der Brücke: ein echtes, nützliches Ergebnis, das ehrlich als Fläche statt als bestimmtes Gebäude beschrieben wird, weil sich die Abfrage tatsächlich darauf bezog.
Wenn Ihre Formularvalidierung derzeit ein Feld house_number verlangt, bevor sie eine Adresse als vollständig akzeptiert, wird diese Prüfung legitime ländliche Adressen und Sehenswürdigkeiten fälschlich ablehnen. Stützen Sie die Annahmekriterien darauf, dass confidence und precision Ihren tatsächlichen Anforderungen entsprechen, statt zu verlangen, dass jeder einzelne Bestandteil befüllt ist.
Behandeln Sie ein leeres Objekt components oder eines, dem mehrere Felder fehlen, nicht wie eine fehlgeschlagene Anfrage. Eine fehlgeschlagene Anfrage kommt mit einem Fehlerstatus und einem Fehlercode zurück, die in der Dokumentation zu Fehlern beschrieben sind. Ein erfolgreiches Ergebnis mit spärlichen Bestandteilen ist ein anderes, völlig normales Ergebnis, und wenn Sie beides in Ihrer Fehlerbehandlung vermischen, werden gültige Adressen als Fehlschläge protokolliert und behandelt.
Bei einer Adresse ohne Hausnummer funktioniert es besser, dem Kunden das formatierte Ergebnis zur Bestätigung anzuzeigen, als die Eingabe sofort abzulehnen. So bleibt eine echte Adresse nutzbar, während wirklich fehlerhafte Eingaben an anderer Stelle weiterhin erkannt werden.
Die Reverse-Geokodierung einer Koordinate im offenen Gelände oder auf dem Wasser kann ebenfalls mit einer gröberen Präzision und weniger befüllten Bestandteilen zurückkommen als eine Koordinate, die auf der Grundfläche eines bestimmten Gebäudes liegt. Die Dokumentation zur Reverse-Geokodierung beschreibt dieselben Präzisionswerte aus dieser Richtung.
Eine Adresse ohne Hausnummer kostet dieselbe eine Anfrage wie jede andere Geokodierungsabfrage. Fehlende Bestandteile ändern nichts daran, wie die Anfrage mit Ihrem Tageskontingent oder Ihrem Guthaben verrechnet wird.
Der richtige Umgang damit besteht vor allem darin, precision und confidence so zu lesen, wie sie gemeint sind, statt anzunehmen, dass jede gültige Adresse jeden Bestandteil vollständig befüllen muss. Die Dokumentation zur Geokodierung erklärt jedes Feld im Detail.