2012-05-16 43 views
2

我正在使用Google Places API來檢索當前位置周圍的所有興趣點(POI),它工作正常,但我注意到無論半徑的值是多少,我都會得到相同數量的結果(〜20 )。因此,如果我給出的半徑太大,我不一定會得到最接近的POI。如果我減少半徑足夠小,我會再次找回那些最近的地方(從實驗中,我已經注意到,100米是一個合適的值),但這意味着我不會得到超過100米的任何POI不完全是我想要的。在Google Places API中使用radius參數的正確方法是什麼?

我的問題是:有沒有辦法讓我可以在一定範圍內得到所有的興趣點(沒有限制)。

謝謝!

回答

1

Google Places API總是返回20個設計結果,選擇最符合您在請求中定義的條件的20個結果。開發人員指南/文檔沒有明確引用我見過的任何數字。我瞭解到Google的開發者倡導者Paul Saxman和Google的Places API技術主管Marcelo Camelo給出的Autocomplete Demo & Places API Demo & Discussion Video的限制。

整個視頻值得關注,但更具體到您的問題,如果您將播放定時器設置爲大約11:50,Marcelo Camelo將自動填充工具與常規Places API對比,這就是視頻部分他提到了20個結果限制。他提到20次是標準結果數次。

在YouTube上還有很多其他優質的Places API和Google Maps視頻鏈接到該區域。

2

作爲對谷歌的地方問題追蹤這裏提到:http://code.google.com/p/gmaps-api-issues/issues/detail?id=3425

我們通過我們的數據提供商的許可限制,使應用能夠顯示在同一時間不超過20位的結果。因此我們目前無法提高這個限制。

這聽起來像你卻試圖返回的結果是最接近指定的位置,這是目前使用的,而不是在你的要求「半徑」的「rankby =距離」參數的可能。

例如

https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&rankby=distance&types=food&name=harbour&sensor=false&key=YOUR_API_KEY

+0

謝謝。然而,看起來上述解決方案只適用於某些地理座標。試試這個:例如'48.83665205,2.3238488750000004'。 –

+0

這是因爲'rankby = distance'請求只返回內50000公里最接近的地方,如果你替代品LAT LNG到上述要求,你會得到'ZERO_RESULTS'因爲有內50000公里包含的'型= food'沒有地方'NAME = harbour'。 –

+0

當然,我已經用我自己的請求嘗試過了,它沒有包含那些過濾器(類型/名稱)。我的錯誤是我沒有包含任何類型或名稱,並且我收到了一個'REQUEST_DENIED'錯誤消息。顯然,你不能提出一個要求你返回任何類型的最近POI的請求。當然,我可以提出幾個請求來彙總所有不同的結果,但那樣會讓我太費時。 –

0

嘗試google.maps.places.RankBy.DISTANCE;默認爲google.maps.places.RankBy.PROMINENCE;

這樣一個簡單的例子顯示Here

(僅限Chrome)

相關問題