Anleitungen

Eine Tabelle mit Adressen in einer einzigen Batch-Anfrage geokodieren

Eine Tabelle voller Adressen braucht keine Schleife. Jeder Endpunkt von My Geocode akzeptiert eine POST-Anfrage mit einem JSON-Array anstelle von Query-Parametern, und der Endpunkt für die Geokodierung nimmt eine ganze Spalte von Adressen auf einmal entgegen und gibt pro Zeile ein geokodiertes Ergebnis zurück, in derselben Reihenfolge, in der Sie sie gesendet haben.

Die Anfrage aufbauen

Exportieren Sie die Adressspalte Ihrer Tabelle als einfaches Array von Zeichenketten und senden Sie es per POST an /v1/forward. Jedes Element des Arrays wird als eigene Abfrage behandelt und liefert ein eigenes Ergebnis, in derselben Reihenfolge, in der Sie sie gesendet haben.

POST /v1/forward
Content-Type: application/json

["221B Baker Street, London", "1600 Pennsylvania Avenue, Washington"]
{
  "status": "ok",
  "results": [
    {"formatted": "221B Baker Street, London, UK", "lat": 51.5237, "lon": -0.1585, "type": "address", "precision": "house", "confidence": 0.95, "place_id": "abc123", "components": {}},
    {"formatted": "1600 Pennsylvania Avenue, Washington, DC", "lat": 38.8977, "lon": -77.0365, "type": "address", "precision": "house", "confidence": 0.97, "place_id": "def456", "components": {}}
  ]
}

Ergebnisse bei gemischten Ländern eingrenzen

Wenn Ihre Tabelle mehrere Länder umfasst, funktioniert ein einfaches Array von Zeichenketten weiterhin, aber mehrdeutige Straßennamen in verschiedenen Ländern können dem falschen Land zugeordnet werden. Wenn Ihre Tabelle eine eigene Länderspalte hat, senden Sie die Zeilen jedes Landes als eigenen Batch mit dem Parameter countries auf den passenden ISO-Code gesetzt, statt Länder in einem Aufruf zu mischen und darauf zu hoffen, dass der Adresstext allein sie eindeutig macht.

Was es kostet

Eine Massenanfrage wird pro Element abgerechnet, nicht pro Aufruf. Zwei Adressen in einem POST verbrauchen zwei Anfragen aus Ihrem Tageskontingent, genau so, als hätten Sie zwei separate GET-Anfragen gesendet. Eine Tabelle mit 500 Zeilen kostet 500 Anfragen und liegt damit bequem innerhalb der 2.500 kostenlosen Anfragen pro Tag, die zu jedem Schlüssel gehören oder auch ganz ohne Schlüssel verfügbar sind.

Zeilen wieder zuordnen

Die Ergebnisse kommen in derselben Reihenfolge zurück wie das gesendete Array. Speichern Sie daher vor dem Senden den ursprünglichen Zeilenindex neben jeder Adresse. Sobald die Antwort eintrifft, ordnen Sie die Ergebnisse den Zeilen Ihrer Tabelle nach Position zu und nicht per Textvergleich, da die formatierte Adresse in der Antwort selten genau so lautet wie Ihre Eingabe.

Umgang mit Teilfehlern

Eine Zeile ohne Ergebnis, mit niedrigem Konfidenzwert oder mit einer geringeren Präzision als benötigt sollte markiert und nicht automatisch übernommen werden. Prüfen Sie bei jedem Element das Feld confidence und leiten Sie alles unterhalb Ihres eigenen Schwellenwerts in eine Liste zur manuellen Prüfung.

Ein Sonderfall: leere Zeilen

Ein Tabellenexport enthält oft am Ende der Datei einige völlig leere Zeilen, Überbleibsel von Formatierungen oder einem Filter, der einmal leere Zellen einschloss. Eine leere Zeichenkette im Array zählt trotzdem als ein Element und liefert in der Regel ein leeres Ergebnis oder eines mit sehr niedriger Konfidenz, das dann gefiltert werden muss, bevor es in Ihre Datentabelle gelangt. Entfernen Sie leere Zeilen daher schon beim Export, statt sie überhaupt durch den Batch zu schicken.

Ein Fehler, den Sie vermeiden sollten

Dieselbe Adresse zweimal zu senden, einmal aus einer aktiven Kundenliste und noch einmal aus einem alten Export, der nie bereinigt wurde, ist ein einfacher Weg, einen Teil Ihres Tageskontingents für doppelte Arbeit zu verbrauchen. Entfernen Sie Duplikate aus der Adressspalte, bevor Sie das Array aufbauen, und verarbeiten Sie nur Zeilen erneut, die sich seit dem letzten Export geändert haben, statt jedes Mal die gesamte Tabelle neu zu geokodieren, wenn ein paar Zeilen hinzukommen.

Große Dateien aufteilen

Sehr große Dateien lassen sich leichter in Blöcken von einigen hundert bis einigen tausend Zeilen verarbeiten. Die Aufteilung macht es außerdem einfach, zwischen den Batches Ihre Kontingent-Header zu prüfen und anzuhalten, bevor Sie Ihr kostenloses Kontingent oder Ihr Prepaid-Guthaben überschreiten.

Wenn Ihre Tabelle mehr als eine Handvoll Zeilen hat, ist das der Unterschied zwischen einer Anfrage und Hunderten von Roundtrips. Die vollständige Struktur von Anfrage und Antwort ist auf der Seite zur Geokodierung dokumentiert.