2017-06-22 95 views
0

我嘗試創建一個Google地圖API調用,用於搜索特定邊界中的地址。使用邊界搜索座標

因此,在我的測試中,我想搜索「8670」,它是比利時一個村莊的郵政編碼。這個村: 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

API調用中使用國家的參數給我正確的答案: https://maps.googleapis.com/maps/api/geocode/json?address=8670|country:BE

但使用範圍參數返回我在美國的城市: https://maps.googleapis.com/maps/api/geocode/json?address=8670&bounds=53.6014224,7.0979623|49.4057287,2.4896213

我知道範圍並不是一個嚴格的過濾器,但是因爲有一個城市在範圍內,那個郵政編碼讓我想到了爲什麼谷歌找不到它,並且讓我離開了一個遠離我的邊界的城市?

我想使用邊界而不是國家參數的原因是因爲搜索是針對3個國家(NL,BE,LU),並且據我所知在國家參數中不可能使用OR 。

回答

1

該文檔說明bounds參數定義此邊界框的西南角和東北角的緯度/經度座標。

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

因此,第一座標應該是西南地區的協調和第二座標應爲東北座標。在你的例子中,你以相反的順序定義邊界NE | SW。只是交換值範圍參數,你將有預期的結果「8670科克賽德,比利時(地點ID ChIJLYMscI263EcR0v​​BtsB6fEhA):

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

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

我希望這有助於!

+0

這有助於很多,因爲它看起來像我完全監督座標的順序。 (這導致我另一個「問題」,從我的應用程序的API調用給出了另一個結果,然後當我採取相同的調用(從我的應用程序打印API調用字符串,所以它的100%相同的調用)。但這兩個位置都在邊界,所以它沒有錯,只是奇怪從我的應用程序調用給出了另一個結果 – nbar