【问题标题】:can't order results by distance using Google Api无法使用 Google Api 按距离排序结果
【发布时间】:2018-10-12 12:24:23
【问题描述】:

我正在拨打这个网址:https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=60.16915,24.9293937&radius=20000&keyword=k+rauta&rankBy=distance&key=KEY

由于某种原因,我无法先从最近的商店订购结果。 就像在 https://developers.google.com/maps/documentation/javascript/places#place_search_requests 的文档中一样,我添加了 rankBy=distance,但结果似乎没有正确排序!

我也删除了半径参数,但我没有找到任何结果!

知道我在这里缺少什么吗?

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 google-api


    【解决方案1】:

    如果我阅读了您提到的文档:

    google.maps.places.RankBy.DISTANCE。此选项按结果与指定location 的距离升序排序(必需)。 请注意,如果您指定RankBy.DISTANCE,则不能指定自定义bounds 和/或radius。当您指定RankBy.DISTANCE 时,keywordnametype 中的一个或多个是必需的。

    根据上述调整您的请求,它会起作用。

    编辑:

    您显然混合了两种不同的东西(抱歉,我一开始没有看到)。您将文档链接指向的 Places LibraryPlaces API Web Service 是另一回事。

    它们都非常相似,但至少有一个区别:rankBy 参数在 Web 服务中是 rankby。注意大写/小写B

    所以这会起作用:https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=60.16915,24.9293937&keyword=k+rauta&name=k+rauta&type=hardware_store&rankby=distance&key=your_api_key

    另请注意,您的最后一次尝试(您的评论中的链接)返回 INVALID_REQUEST 而不是 ZERO_RESULTS 或其他任何可以帮助您了解您的请求存在问题的东西,而不是因为没有数据可返回...

    【讨论】:

    • 我删除了半径,但我根本没有得到任何结果 (INVALID_REQUEST)。你能提供最接近的结果的网址吗?
    • 我知道在这种情况下我必须将关键字、名称和类型作为必填字段
    猜你喜欢
    • 1970-01-01
    • 2014-05-08
    • 2016-12-15
    • 2011-12-31
    • 2015-06-28
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多