使用google places api

时间:2017-01-27 15:29:35

标签: android google-maps google-places-api distance

您好我正在开发小型Android应用程序,其中我使用谷歌地方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参数。

此外,我在两个请求中都面临着一些挑战。在第一次请求中,它返回了一些5Km以内的学校。在第二个请求中它返回我附近的学校。如果我检查两个结果,附近的一些学校不存在于半径为参数的请求中。

我的预期输出需要在5公里范围内的附近学校,并且距离已经分类。我在上述请求中做错了什么?需要一些帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

关于rankby和radius参数的文档非常清楚:

  

radius - 定义返回地点结果的距离(以米为单位)。允许的最大半径为50 000米。请注意,如果指定了rankby = distance (在下面的可选参数中描述),则不得包含 radius

     

rankby - 指定列出结果的顺序。请注意,如果指定了 radius (在上面的必需参数中描述),则不得包含 rankby

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

因此无法将radius参数与rankby=distance结合使用。

示例中的第一个请求会忽略rankBy(它也区分大小写),因此您在5公里范围内获得了显着的结果。在这种情况下,可能会省略不太突出但结果较近的结果。

解决方法可能是按距离排序结果,并过滤掉location和地点坐标之间距离大于5000米的所有地方。