Bestätigungsfunktion für Standorte mit der Google Maps Platform erstellen

Ziel

Häufig müssen Sie den Standort eines Ortes validieren. In der Google Maps Platform gibt es verschiedene Dienste, die Ihnen bei diesem Anwendungsfall helfen können. In diesem Dokument erfahren Sie, wie Sie zwischen den beiden primären Diensten zur Standortüberprüfung wählen: der Address Validation API und der Geocoding API.

Die Address Validation API ist ein Angebot der Google Maps Platform, mit dem Kunden prüfen können, ob eine Adresse korrekt ist.

Beim Geocoding mit der Geocoding API werden Adressen in geografische Koordinaten umgewandelt, mit denen sich Markierungen auf einer Karte oder einer Position auf der Karte platzieren können.

Einen allgemeinen Überblick über die Unterschiede zwischen Address Validation und Geocoding API finden Sie hier.

Wann sollte Address Validation und Geocoding API verwendet werden?

Address-Validation-vs-Geocoding

Hinweise zum Flussdiagramm oben:

  • Der Anwendungsfall „Nutzerinteraktion“ bezieht sich auf Nutzer, die anwesend sind, um mit den Ergebnissen zu interagieren.
  • Places Autocomplete ist eine JavaScript API, die sich für die Integration in Benutzeroberflächen eignet.
  • Möglicherweise sind Ihnen Probleme mit der Datenqualität in Ihren bestehenden Adressen bekannt. Auch wenn Sie vielleicht nur Geocodes benötigen, ist es ratsam, diese Standorte über die Address Validation API auszuführen, um die Datasets zu korrigieren.

Es gibt viele Situationen, in denen Sie sich basierend auf dem obigen Entscheidungsbaum dafür entscheiden könnten, ein Produkt einem anderen vorzuziehen. In anderen Situationen können jedoch beide Produkte verwendet werden, um Ihre Ziele zu erreichen.

In folgenden Fällen können Sie die Address Validation API anstelle der Geocoding API verwenden:

  • Es besteht eine hohe Wahrscheinlichkeit, dass Daten fragwürdig sind, oder wenn sich eine falsche Adresse nachgelagert negativ auswirkt. Das liegt daran, dass die Address Validation API mehr Feedback dazu bietet, warum eine Eingabe kein Ergebnis mit hoher Genauigkeit erzielt hat.
  • Sie müssen die Nutzereingaben korrigieren (z.B. Rechtschreibfehler oder fehlende Felder), was die Wahrscheinlichkeit eines genauen Ausgabeergebnisses erhöht.
  • Ihre Zielregion gibt mehr Metadaten über die Address Validation API als die Geocoding API zurück, z. B. die Klassifizierung des Gebäudetyps als Wohngebäude oder Gewerbegebäude.

In folgenden Fällen können Sie Geocoding anstelle der Address Validation API verwenden:

  • Ihr Hauptziel besteht darin, den Standort einer Adresse abzurufen, und die Genauigkeit einzelner Adressen ist nicht unbedingt kritisch.
    • Sie können beispielsweise eine Heatmap aus einem großen Datensatz erstellen.
  • Sie benötigen eine globale Lösung und die Address Validation API ist nicht in allen Zielregionen verfügbar.

Die folgenden Beispiele veranschaulichen die Funktionen der Address Validation API im Vergleich zur Geocoding API.

Beispiel für eine ungültige Adresse

1 Fake St, Mountain View, CA 94043, USA

Die Address Validation API schlüsselt diese Eingabe in einzelne Adresskomponenten (Straße, Stadt, Bundesland usw.) auf. Außerdem erhalten Sie damit detailliertes Feedback dazu, warum die Adresse nicht bis zu PREMISE gültig ist.

Fake St ist in Mountain View, CA, USA nicht vorhanden. Dies wird von der Address Validation API in den zurückgegebenen Details auf Komponentenebene widergespiegelt:

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

Die wichtige Eigenschaft, die in diesem Fall geprüft werden muss, ist confirmationLevel. Durch die Rückgabe von UNCONFIRMED_BUT_PLAUSIBLE für die Fake St hat die API festgestellt, dass eine Straße diesen Namen als Namen haben kann, kann aber nicht mit den unterstützenden Adressdaten abgeglichen werden.

Anhand des API-Ergebnisses als Feedback kann abgeleitet werden, dass die Street-Komponente dieser Eingabe (Fake St) fehlerhaft ist.

Wenn Sie dieselbe Adresse mit der Geocoding API verwenden, können Sie einen Abgleich für „Kalifornien“ vornehmen, wie Sie im Screenshot des Geocoding-Tools sehen können, das Sie hier ausprobieren können:

alt_text

Das Ergebnis ist jedoch eine Geocodierung des gesamten Bundeslands mit minimaler Rückmeldung darüber, welche Komponenten der Eingabe möglicherweise fehlerhaft waren.

Beispiel für Rechtschreibfehler

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

Die obige Adresse enthält einige Rechtschreibfehler, einen im Straßennamen und einen im Ortsteil.

Sowohl die Address Validation als auch die Geocoding API können diese Fehler korrigieren und das Ergebnis der 76 Buckingham Palace Road, London, SW1W 9TQ, erreichen. Die Address Validation API kann jedoch weitere Informationen zum Prozess liefern.

Sehen Sie sich eine der Adresskomponenten an, die bei der Eingabe falsch geschrieben wurden:

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

Die Address Validation API gibt ein Flag zurück, das anzeigt, dass das Feld korrigiert wurde. Für dieses Flag kann Geschäftslogik implementiert werden, um die Korrektur mit dem Datenanbieter (z. B. einem Kunden beim E-Commerce-Kauf) zu überprüfen.

Beispiel für fehlende Daten und Rechtschreibfehler

Bollschestraße 86, 12587, DE

Die obige Adresse enthält einen Rechtschreibfehler im Straßennamen und es fehlt die Stadt (Ort) von Berlin.

Die Address Validation API kann diese beiden Fehler beheben und gibt einen Geocode auf PREMISE-Ebene sowie eine Adresse zurück, die auf PREMISE-Ebene bestätigt wurde:

Bölschestraße 86, 12587 Berlin, DE

Die Geocoding API kann in diesem Fall die Eingabefehler nicht beheben und gibt als Ergebnis ZERO_RESULTS zurück.

Beispiel für Metadaten für zusätzliche Adressen

111 8th Avenue Ste 123, New York, NY 10011-5201, USA

Diese Adresse ist korrekt, mit Ausnahme der Nummer der Einheit (Ste 123), die im Gebäude nicht vorhanden ist.

Die Address Validation API kann die Adresse für die PREMISE (111 8th Ave) validieren und einige Metadaten zur Unterkunft liefern, darunter auch, dass es sich um eine kommerzielle Unterkunft handelt

Räumlichkeiten:

"business": true

Außerdem lautet der dpvConfirmation-Wert, der als Teil von uspsData in der Antwort zurückgegeben wird, S:

"dpvConfirmation": "S"

Ein dpvConfirmation-Wert von S gibt an, dass die Adresse auf PREMISE-Ebene validiert wird, die in der Eingabe angegebene Einheitennummer jedoch nicht mit dieser Adresse verknüpft ist.

Die Geocoding API kann diese Informationen nicht bereitstellen.

Informationen zur Geocoding API-Antwort

Überblick

Wenn Sie die Geocoding API verwenden, enthält das Geocode-Ergebnis in der Antwort verschiedene Hinweise, die zum Verständnis der Details der angegebenen Adresse dienen können.

Die Funktionsweise der Geocoding API besteht darin, Adresskomponenten in einer Hierarchie aufzulösen.

Beispiel: 123 Example Street, Chicago, 60007, USA wird in der folgenden Reihenfolge aufgelöst:

/ Example Street/ Chicago/ 60007/ USA werden in dieser Reihenfolge ausgewertet. Die erste Übereinstimmung ist in diesem Fall Chicago, genauer gesagt die Postleitzahl 60007. Daher wird die folgende Place_id für die Postleitzahl zurückgegeben:

ChIJwRKzf8ixD4gRHiXqucwr_HQ

Die Geocode API enthält die folgenden Informationen in der Antwort:

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

Die Geocoding API kann bestätigen, zu welcher Art von Ort diese Adresse gehört. Eine Liste der types, die von der Geocoding API zurückgegeben wurden, finden Sie hier.

Wenn keine der Komponenten der Eingabe aufgelöst wird, gibt die API Folgendes zurück:

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

Wenn Sie nur eine Adresse ohne Hausnummer anfordern, wird ein Ergebnis in folgendem Format zurückgegeben:

"types": [
  "route"
]

Das bedeutet, dass die Geocoding API eine Hausnummer nicht finden oder zuordnen konnte.

Hinweis:Wenn Sie wissen möchten, ob eine Adresse existiert, prüfen Sie, ob Parameter (z. B. types oder partial_match, results, status)) in der Geocoding API-Antwort festgelegt sind. Dadurch wird das Konfidenzniveau, dass eine Adresse existiert, schrittweise erhöht, aber sie wird nicht zu 100% genau sein. Deshalb brauchen wir die Address Validation API.

Mit den oben beschriebenen Methoden können Sie die Zuverlässigkeit der Adressgenauigkeit allein aus einer Geocoding API-Antwort erhöhen. Im Gegensatz zu einem Ergebnis der Address Validation API gibt die Geocoding API jedoch kein genaues Feedback zurück, um die Genauigkeit der Ergebnisse zu bestimmen.

Standorttyp

Damit Sie diesen Abschnitt richtig verstehen, müssen Sie die verschiedenen Standorttypen kennen, die von einer Geocoding API-Antwort zurückgegeben werden können:

  • ROOFTOP gibt an, dass das zurückgegebene Ergebnis ein präziser Geocode ist, für den Standortinformationen bis zur Straßenebene vorliegen.
  • RANGE_INTERPOLATED gibt an, dass das zurückgegebene Ergebnis eine Näherung darstellt (normalerweise auf einer Straße), die zwischen zwei präzisen Punkten wie z. B. Kreuzungen interpoliert wurde. Interpolierte Ergebnisse werden zurückgegeben, wenn präzise Geocodes für eine Postanschrift nicht verfügbar sind.
  • GEOMETRIC_CENTER gibt an, dass das zurückgegebene Ergebnis der geometrische Mittelpunkt eines Ergebnisses wie einer Polylinie (z. B. einer Straße) oder eines Polygons (einer Region) ist.
  • APPROXIMATE gibt an, dass das zurückgegebene Ergebnis keine der oben genannten Optionen ist.

Wenn ein Geocoding API den Wert location_type ROOFTOP oder RANGE_INTERPOLATED zurückgibt, bedeutet dies nicht unbedingt, dass die Adresse existiert. Gleichermaßen kann das Ergebnis das richtige Ergebnis für Sie sein, wenn eine Geocoding API mit dem Flag partial_match auf true zurückkehrt.

Diese Art der falschen Zuordnung ist ein sehr schwieriges Problem mit der Geocoding API. Zumindest sollten Sie eine grundlegende Validierung nach der Verarbeitung für das Land und den Ort der Anfrage / Antwort implementieren. Noch besser ist es, die tatsächlichen Adressen auf Rechtschreibfehler und/oder unvollständige Adressen zu vergleichen.

Hinweis: Wenn Sie sich für die Verwendung der Geocoding API entscheiden, sollten Sie regelmäßig die Datenqualität zwischen der ursprünglichen Anfrage und der Antwort der Geocoding API prüfen.

Teilweise Übereinstimmung und falsche Übereinstimmungen

Wenn eine Adresse eine teilweise Übereinstimmung aufweist, d. h. die Geocoding API die Adresse nicht genau identifizieren konnte, enthält die Antwort Folgendes:

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

Noch wichtiger als die oben genannten Standorttypen ist es, zu berücksichtigen, wenn partial_match = true in der Antwort enthalten ist. partial_match gibt an, dass die Geocoding API keine genaue Übereinstimmung für die ursprüngliche Anfrage zurückgegeben hat, obwohl ein Teil der angeforderten Adresse abgeglichen werden konnte.

Sie sollten die ursprüngliche Anfrage für eine unvollständige Adresse prüfen. Teilweise Übereinstimmungen treten am häufigsten bei Adressen auf, die nicht in dem in der Anfrage angegebenen Ort vorhanden sind. Teilübereinstimmungen können auch zurückgegeben werden, wenn eine Anforderung mit mehr als einem Standort am selben Ort übereinstimmt.

21 Henr St, Bristol, UK“ gibt beispielsweise eine teilweise Übereinstimmung sowohl für die Henry Street als auch für die Henrietta Street zurück. Wenn eine Anfrage eine falsch geschriebene Adresskomponente enthält, schlägt die Geocoding API möglicherweise eine alternative Adresse vor. Vorschläge, die so ausgelöst werden, werden nicht als teilweise Übereinstimmung gekennzeichnet.

Synthetische Adressen

Die Geocoding API gibt unter Umständen Standorte für „synthetische“ Adressen zurück, die in der Datenbank von Google nicht als genaue Standorte vorhanden sind.

In solchen Fällen enthält das Antwortobjekt häufig eine lange Orts-ID und die folgende Eigenschaft: geometry.location_type=APPROXIMATE.

Wenn Sie in der Antwort auf diese Indikatoren stoßen, sollten Sie die eingegebene Adresse als ungültig markieren und sie auf andere Weise noch einmal validieren.

Hinweis: Dies ist ein weiteres Beispiel, bei dem Sie mit der Address Validation API direktes Feedback erhalten, wenn keine Adresse vorhanden ist.

Informationen zur Address Validation API-Antwort

Es gibt bereits eine gute Dokumentation dazu, wie die Antworten der Address Validation API zu verstehen sind. Deshalb werden wir an dieser Stelle nicht weiter ins Detail gehen.

Best Practices

Geografie angeben

Wenn Sie die Address Validation API oder die Geocoding API aufrufen, sollten Sie versuchen, die geografische Ausrichtung für die Suche nach dieser Adresse einzuschränken. Die beiden APIs implementieren dies auf zwei verschiedene Arten:

  • Geocoding API – Gewichtung nach Region

    Wenn Sie wissen, dass die Geocodes innerhalb eines bestimmten Landes erfolgen, erhalten Sie mit der Gewichtung nach Region viel bessere Ergebnisse. Wenn Sie beispielsweise ein Geocoding in Kanada durchführen, empfehlen wir, &region=ca in Ihre Anfragen aufzunehmen, um eine Gewichtung auf Kanada vorzunehmen. Beachten Sie, dass bei der Gewichtung nach Region nur Ergebnisse innerhalb dieser Region bevorzugt werden. Außerhalb der Region können Sie jedoch weiterhin Ergebnisse erhalten.

  • Address Validation API – Regionscode

    In ähnlicher Weise liefert die Address Validation API genauere Ergebnisse, wenn ein ISO2 in der Anfrage über das Feld regionCode übergeben wird.

Orts-IDs speichern

Wenn Sie Informationen zum Standort aus der Google Maps Platform für zukünftige Anfragen speichern möchten, können Sie die Orts-ID unbegrenzt in Ihrer Datenbank als Attribut des Standorts speichern. Die Find Place-Anfrage sollte pro Orts-ID nur einmal gestellt werden. Sie können auch jedes Mal nach der Orts-ID suchen, wenn ein Nutzer Transaktionsdetails anfordert.

Damit Ihnen immer die aktuellsten Informationen vorliegen, aktualisieren Sie Orts-IDs alle zwölf Monate mit einer Place Details-Anfrage mit dem Parameter place_id.

Hinweis: Weitere Informationen finden Sie im Best Practices-Leitfaden für die Geocodierung.

Fazit

In diesem Dokument werden die wichtigsten Unterschiede zwischen der Address Validation API und der Geocoding API beschrieben. Zusammenfassend lässt sich sagen, dass Sie in folgenden Fällen die Address Validation API in Betracht ziehen sollten:

  • Eine genaue Postanschrift ist insbesondere aus Gründen der Zustellbarkeit erforderlich.
  • Die Eingabedaten sind bekanntermaßen von schlechter Qualität. Die Address Validation API vermeidet Eingabefehler, hebt nicht überprüfbare Adresskomponenten hervor und korrigiert die Eingabedaten.
  • Für eine Adresse sind weitere Informationen erforderlich, z. B. Privat- oder Gewerbeadresse (in ausgewählten Regionen verfügbar).

Nächste Schritte

Laden Sie das Whitepaper Verbessern der Kasse, der Zustellung und der Abläufe mit zuverlässigen Adressen herunter und sehen Sie sich das Webinar Kasse, Zustellung und Abläufe mit Adressüberprüfung verbessern an.

Leseempfehlungen:

Beitragende

Dieser Artikel wird von Google verwaltet. Die folgenden Mitwirkenden haben ihn ursprünglich verfasst.

Hauptautoren:

Henrik Valve | Solutions Engineer

Thomas Anglaret | Solutions Engineer

Sarthak Ganguly | Solutions Engineer