2017-06-22 5 views
0

Ich versuche, einen Google Maps API-Aufruf zu erstellen, der eine Adresse in einer bestimmten Grenze sucht.Verwenden von Grenzen zum Suchen nach Koordinaten

Also in meinem Test möchte ich nach "8670" suchen, das ist eine Postleitzahl aus einem Dorf in Belgien. Dieses Dorf: https://www.google.com/maps/place/8670+Koksijde,+Belgium/@51.1129798,2.6459201,13z/data=!3m1!4b1!4m5!3m4!1s0x47dcba8d702c832d:0x10129f1eb06df0d2!8m2!3d51.117577!4d2.6744402

die Land-Parameter in dem API-Aufruf gibt mir die richtige Antwort: https://maps.googleapis.com/maps/api/geocode/json?address=8670|country:BE

Aber mit den Schranken-Parametern gibt mir eine Stadt in den USA: https://maps.googleapis.com/maps/api/geocode/json?address=8670&bounds=53.6014224,7.0979623|49.4057287,2.4896213

Ich weiß, Grenzen ist kein strenger Filter, aber da es eine Stadt in der Nähe der Grenzen mit dieser Postleitzahl gibt, hinterlässt mich die Frage, warum Google es nicht findet und mir eine Stadt weit weg von meinen Grenzen zurückbringt?

Der Grund, warum ich Bounds und nicht Country-Parameter verwenden möchte, ist die Suche nach 3 Ländern (NL, BE, LU) und soweit ich weiß, ist es nicht möglich, OR im Länderparameter zu verwenden .

Antwort

1

Die Dokumentation besagt, dass der Parameter bounds die Breiten- und Längenkoordinaten der südwestlichen und nordöstlichen Ecken dieser Bounding Box definiert.

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

So, die erste Koordinate von Südwesten koordinieren sollte und zweite Koordinate sollte koordinieren im Nordosten sein. In Ihrem Beispiel definieren Sie Grenzen in umgekehrter Reihenfolge NE | SW. Gerade tauschen Werte in Grenzen Parameter und Sie haben Ergebnis '8670 Koksijde, Belgien' (Ort ID ChIJLYMscI263EcR0vBtsB6fEhA) erwartet:

https://maps.googleapis.com/maps/api/geocode/json?address=8670&bounds=49.4057287%2C2.4896213%7C53.6014224%2C7.0979623&key=YOUR_API_KEY

oder

https://maps.googleapis.com/maps/api/geocode/json?components=postal_code%3A8670&bounds=49.4057287%2C2.4896213%7C53.6014224%2C7.0979623&key=YOUR_API_KEY

Ich hoffe, das hilft!

+0

Dies hilft sehr, da es so aussieht, als ob ich die Reihenfolge der Koordinaten völlig übersehen habe. (Dies führt mich zu einem anderen "Problem", wo der Aufruf der API aus meiner Anwendung ein anderes Ergebnis ergibt, wenn ich dann den gleichen Aufruf (druckt die API-Call-Zeichenfolge aus meiner App, also seinen 100% gleichen Anruf) Beide Standorte sind in den Grenzen und so ist es nicht falsch, nur seltsam, der Anruf von meiner App gibt ein anderes Ergebnis – nbar

Verwandte Themen