在Google Places API中使用radius参数的正确方法是什么?

时间:2012-05-16 09:07:03

标签: google-places-api

我正在使用Google Places API检索当前位置周围的所有POI(景点),它工作正常,但我注意到无论半径的值是多少,我总是得到相同的数字结果(~20)。因此,如果我给出的半径太大,我不一定得到最接近的POI s。如果我将半径的数量减少到足够小,我将再次检索那些最近的地方(从实验中,我注意到100米是一个合适的值),但这意味着我不会得到任何超过100米的POI,这是不是我想要的。

我的问题是:我有什么方法可以在一定范围内获得所有 POI(没有限制)。

谢谢!

3 个答案:

答案 0 :(得分:2)

正如Google地方问题跟踪器中所述:http://code.google.com/p/gmaps-api-issues/issues/detail?id=3425

我们受到数据提供商许可的限制,以使应用一次只能显示不超过20个位置的结果。因此,我们目前无法增加此限制。

听起来好像你正在尝试返回最接近指定位置的结果,现在可以通过在请求中使用'rankby = distance'参数而不是'radius'来实现。

e.g。

  

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

答案 1 :(得分:1)

Google Places API始终按设计返回20个结果,选择最符合您在请求中定义的条件的20个结果。开发人员指南/文档没有在我看到的任何地方明确引用该数字。我了解了观看Autocomplete Demo & Places API Demo & Discussion Video的限制,由Google的开发者倡导者Paul Saxman和Google的Places API技术主管Marcelo Camelo提供。

整个视频值得观看,但更具体的问题是,如果您将播放计时器设置为大约11:50,则Marcelo Camelo会将自动填充工具与常规Places API进行对比,这就是视频的一部分他提到了20个结果限制。他提到20次作为标准结果计数数次。

YouTube上还有许多其他好的Places API和Google地图视频也与该区域相关联。

答案 2 :(得分:0)

尝试google.maps.places.RankBy.DISTANCE;,默认为google.maps.places.RankBy.PROMINENCE;

显示了一个简单的例子Here

(仅限Chrome)