您好我正在开发小型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公里范围内的附近学校,并且距离已经分类。我在上述请求中做错了什么?需要一些帮助。谢谢。
答案 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米的所有地方。