1

Wir verwenden die Google Geocoding API, um UK Postleitzahlen auf unserem Transport Buchungsformular zu validieren, aber es gibt nicht immer die Adresse, Beispiel EC2Y 8DR eine London Postleitzahl gibt die long/lat zurück Die Booling-Formularfelder sind jedoch nicht ausgefüllt. Wir sind von einem kostenpflichtigen Service weggezogen und jetzt haben unsere Kunden ein ernsthaftes Problem, Buchungen einzugeben.UK PLZ Nicht zurückgebende Straße

können Sie dies hier sehen um https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform

Gibt es eine Arbeit?

Vielen Dank im Voraus Simon

+0

Könnte es sein, dass die Postleitzahlen Sie Probleme mit Abdeckung mehr als eine Straße/Standort haben? Die Beispiel-Postleitzahl EC2Y 8DR umfasst eine City of London Polizeistation sowie Shakespeare Towers. – RobertKenny

+0

Geht Ihr Code davon aus, dass es einen Straßennamen geben wird? Diese Postleitzahl ist für das Barbican in London, das keinen Straßennamen in seiner Royal Mail Adresse hat. ZB Wohnung 11 Shakespeare Tower Barbican LONDON EC2Y 8DR – OTTA

+0

Sie versuchen, eine Straße zurück von der Übermittlung einer Postleitzahl zu bekommen? Oder versuchen Sie, eine vollständige Adresse mit Postleitzahl einzugeben und zu bestätigen, dass die Postleitzahl mit dieser Adresse übereinstimmt? – camiblanch

Antwort

3

Lassen Sie sich eine Autocomplete-Anfrage für 'EC2Y 8DR'

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=EC2Y%208DR&key=YOUR_API_KEY

einen Blick Wenn Sie diese Anfrage ausführt, werden Sie diesen Vorschlag ‚London EC2Y 8DR sehen , Großbritannien 'hat einen Typ "postal_code" (Orts-ID ChIJgYd44lUbdkgRUMGemVRu-1Q). Wenn Sie also Details für diese Orts-ID anfordern, erhalten Sie Informationen über eine Postleitzahl, die keinen Straßennamen enthält.

https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJgYd44lUbdkgRUMGemVRu-1Q&key=YOUR_API_KEY

Sie können die Postleitzahl in Map Maker finden Sie unter: http://www.google.com/mapmaker?gw=90&iwloc=0_0&dtab=history&cid=6123609427973947728

Die Lösung ist folgendes:

Wenn Sie den Typ ein Ort Detail analysieren fordern. Wenn der Typ "postal_code" ist, extrahiere den Breiten- und Längengrad der Postleitzahl und führe die umgekehrte Geocodierung durch, um die nächste Adresse zu erhalten.

In Ihrem Beispiel hat die Postleitzahl Koordinaten 51.5202776, -0.09492260000000001. Die umgekehrte Geokodierung wird eine Adresse "331 Shakespeare Tower, London EC2Y 8DR, UK" zurückgeben.

Bitte schauen Sie sich das Ergebnis in Geocoder-Tool:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D51.520278%252C-0.094923