2017-01-27 110 views
0

嗨我正在開發小型Android應用程序,我使用谷歌地點API顯示附近的地方。我嘗試以下請求:獲取距離過濾附近的地方使用谷歌地點api

https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankBy=distance&radius=5000&location=19.107991%2C73.001277&key=API_KEY_VAL&type=school 

所以上面的請求返回附近的學校,但這些都沒有距離排序。我試着用另一個請求:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankby=distance&location=19.107991%2C73.001277&key=API_KEY_VAL&type=school 

以上要求給我距離來分類的結果,但我不能在這種情況下使用radius參數中。

另外我在這兩個請求中都面臨一些挑戰。在第一次請求中,我回復了5公里內的一些學校。在第二個請求中,它將我送回附近的學校。如果我檢查這兩個結果,附近有些學校不在以半徑爲參數的請求中。

我的預期輸出需要距離排序距離5Km範圍內的附近學校。在上述要求中做錯了什麼?需要一些幫助。謝謝。

+0

[在Android中使用Google Maps API顯示當前位置和附近地點以及兩地之間的路線]的可能重複(http://stackoverflow.com/questions/8428209/show-current-location-and-nearby-places-和雙路由間 - 地方 - 使用 - GOOGL) – Chisko

回答

1

的文檔是非常明確的關於rankby和半徑參數:

半徑 - 定義其範圍內返回地方結果的距離(以米爲單位)。允許的最大半徑是50000米。請注意,半徑如果指定rankby =距離(在下面的可選參數下進行說明),則不得包含該值。

rankby - 指定列出結果的順序。請注意,rankby如果指定了半徑(描述在上面的必需參數中),則不得包含該值。

https://developers.google.com/places/web-service/search#PlaceSearchRequests

所以沒有辦法用結合radius參數與rankby=distance

您示例中的第一個請求忽略rankBy(它也區分大小寫),所以您在5公里範圍內獲得了顯着的結果。在這種情況下,可能會忽略不那麼顯着但接近的結果。

解決方法可能是按距離排序結果,並篩選出location與地點座標之間的距離大於5000米的所有地方。