【问题标题】:How do I get more locations?如何获得更多地点?
【发布时间】:2011-09-05 02:02:03
【问题描述】:

我正在尝试使用 FourSquare API 通过以下 API 调用获取纽约的一些位置:

https://api.foursquare.com/v2/venues/search?ll=40.7,-74&limit=50

我不明白的是,如果调用限制为 50 个搜索结果(这是最大值),我怎样才能获得更多位置?使用 Facebook API 时,返回的结果是随机的,因此我可以发出多个调用以获得更多结果,但 FourSquare 似乎返回相同的结果集。有没有获得更多位置的好方法?

编辑:

好的。所以有评论说我可能会违反合同协议,我不确定为什么会这样。我很乐意接受对此的推理。我的疑问是:假设我要搜索的位置不在返回的 50 个结果中?那样的话,是不是应该在某处有分页机制?

【问题讨论】:

    标签: javascript python http foursquare


    【解决方案1】:

    API 文档 here 可以提供帮助。

    Foursquare 搜索与您提供的位置“点”(查询中的“将”参数)密切相关。简单的答案是,要在给定区域内查找更多场所,您只需使用该区域内的不同位置“点”再次查询即可。

    两个查询,都在彼此靠近的点:

    https://api.foursquare.com/v2/venues/search?ll=40.700,-74.000&limit=50
    https://api.foursquare.com/v2/venues/search?ll=40.705,-74.005&limit=50
    

    将为您提供两组不同的场地(可能会重叠,具体取决于点的接近程度)。

    搜索方法的默认意图是“checkin”,它将返回最接近该点的 50 个最受欢迎的位置。相反,如果您想查看一个区域内的所有场地,您可以使用“浏览”意图。这需要一个 'radius' 参数,在这种情况下,它会返回具有给定半径的给定点周围的圆内的场地,或者它需要两个坐标来表示矩形的 'sw' 和 'ne' 角。所以,你可以这样做:

    https://api.foursquare.com/v2/venues/search?ll=40.705,-74.005&limit=50&intent=browse&radius=50
    

    这将在该点周围的 50m 范围内为您提供 50 个场地。较小的半径将减少返回的场地数量。因此,通过改变半径和搜索点(或由 'sw' 和 'ne' 参数描述的矩形的大小和位置),您可以获得更多的场地返回。

    希望对您有所帮助。

    【讨论】:

    • +1 不知怎的,我忘记了这个问题。这正是我为绕过限制所做的。非常感谢您分享这个想法!
    【解决方案2】:

    当前 API 将结果限制为 50。您应该尝试将坐标更改为更精确以避免找不到您的场地。

    分页会很好,但 50 是很多搜索场所。

    【讨论】:

      猜你喜欢
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      相关资源
      最近更新 更多