webentwicklung-frage-antwort-db.com.de

Korrigieren Sie das Adressformat, um die genauesten Ergebnisse von Google GeoCoding API zu erhalten

Gibt es ein Standardformat, um die Adresszeichenfolge an die Google GeoCoding API zu übergeben, um die genauesten Ergebnisse auf der Karte zu erhalten.

Für zB Die folgende Abfrage liefert kein korrektes Ergebnis.

http://maps.googleapis.com/maps/api/geocode/xml?address=bloom,Bloomfield,CT,06002 ,USA&sensor=false

Vielen Dank 

Mandeep

20
mandeep-dhiman

Ich glaube, das vorgeschlagene Format ist: 

House Number, Street Direction, Street Name, Street Suffix, City, State, Zip, Country

Die Ergebnisse werden weniger spezifisch, je weniger Informationen Sie bereitstellen können.

In Ihrem Beispiel sucht der Geocoder nach einer Straße mit dem Namen 'bloom', von der ähnliche Übereinstimmungen in OH anstelle von CT vorhanden sind. Wenn Sie 'bloom' aus der Abfrage entfernen und anschließend suchen, wird Bloomfield, CT zurückgegeben.

23
Casey

Definition der Google-Adresssuche: 

address - Die Straße, die Sie geokodieren möchten, in dem Format, das vom nationalen Postdienst des betreffenden Landes verwendet wird. Zusätzliche Adresselemente wie Geschäftsnamen und Einheiten-, Suite- oder Etagennummern sollten vermieden werden.

https://developers.google.com/maps/documentation/geocoding/#geocoding

Wie muss ich meine Geocoder-Abfragen formatieren, um die Anzahl der erfolgreichen Anfragen zu maximieren?

Der Geocoder dient dazu, Straßenadressen nach geografischen Koordinaten abzubilden. Es wird daher empfohlen, Geocoder-Anforderungen gemäß den folgenden Richtlinien zu formatieren, um die Wahrscheinlichkeit einer erfolgreichen Abfrage zu maximieren:

  • Geben Sie Adressen an, die dem Format entsprechen, das vom nationalen Postdienst des betreffenden Landes verwendet wird.
  • Geben Sie keine zusätzlichen Adresselemente an, wie z. B. Geschäftsnamen, Einheitsnummern, Etagennummern oder Suite-Nummern, die nicht in der vom Postdienst des betreffenden Landes definierten Adresse enthalten sind.
  • Verwenden Sie möglichst die Straßennummer einer Räumlichkeit dem Namen des Gebäudes vor.
  • Verwenden Sie vorzugsweise die Straßennummerierung, um nach Möglichkeit Querstraßen anzugeben.
  • Geben Sie keine "Tipps" wie nahegelegene Sehenswürdigkeiten an.

https://developers.google.com/maps/faq#geocoder_queryformat

4
phlegx

Ich fand die Antwort unvollständig und es fehlte an einer Quelle. 

Schauen Sie hier: https://developers.google.com/places/documentation/autocomplete#place_autocomplete_responses

Die Karten-Autovervollständigungs-API von Google gibt ein viel einfacheres Format zurück: "Straße, Stadt, Land" Jetzt können Sie eine solche Zeichenfolge verwenden, um nach einer Adresse zu suchen. Dies sollte zu einem genauen Ergebnis führen Wenn Sie die Autocompletion-API verwenden, erhalten Sie auch eine eindeutige Kennung, die für weitere Detailanforderungen verwendet werden kann. 

Das Format der Straße hängt stark von dem Ort ab, an dem Sie sich tatsächlich befinden. In den USA kann "Hausnummer, Straße, Straßenname, Straßensuffix" sinnvoll sein, da dies in den meisten Ländern Europas nicht zu einer erfolgreichen Abfrage führt . 

In den meisten EU-Ländern gibt es unterschiedliche Adressen (häufig "Straßennummern-Suffix") wie "Kumpelstraat 25A", "Psolevcu 331/26b"), und ich denke, wir wären überrascht, wenn wir uns einige östliche Länder ansehen. 

Wenn Sie also Ihren Code an einen einzigen Bereich binden (USA, die meisten EU-Länder), können Sie das Format gut kodieren.
Wenn Sie ein flexibleres System haben möchten, müssen Sie entweder herausfinden, welche Formatierung Sie für Ihre Zielgruppe durchführen möchten, oder eine der Google-APIs abfragen, um automatisch eine korrekte Zeichenfolge zu erhalten API-Schlüssel mit einem kostenlosen Anforderungslimit pro Tag.

4
John

Ich stolperte über diese Frage und fand eine Lösung, die für mich funktionierte:

Ich denke, die Antwort kann mithilfe der Komponentenfilterung gefunden werden. Siehe: https://developers.google.com/maps/documentation/geocoding/#ComponentFiltering

Ein Beispiel in Javascript:

var request = require('request');

var url = "https://maps.googleapis.com/maps/api/geocode/json?" +
    "address=Herengracht 180" +
    "&components=postal_code:1016 BR|country:NL" +
    "&sensor=false";

request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
  else {
    console.log('error', error);
  }
});
3
Whyhankee

Wohnungseinheiten müssen nicht vermieden werden. Das funktioniert:

https://maps.googleapis.com/maps/api/geocode/xml?address=14202+N+42nd+St+Unit+301+33613

"Apt", "Room" und "Suite" funktionieren ebenfalls

Sie alle geben 301 als Unteraufgabe zurück und werden in "formatierte Adresse" als "# 301" angezeigt.

Paul schickt ...

1
Paul Kranz

Ich habe festgestellt, dass offizielle Ländercodes wie "US", "DE", "FR" nicht gut funktionieren. Wenn Sie sie durch den vollständigen Ländernamen ersetzen, sind die Ergebnisse für mich viel besser.

Ich habe keine Quelle gefunden, in der das angegeben ist.

0
Meran23