【问题标题】:Why does Foursquare search not return venues closest to my specified location?为什么 Foursquare 搜索不返回离我指定位置最近的场所?
【发布时间】:2013-05-10 23:15:02
【问题描述】:

我注意到foursquare 搜索API 有一些奇怪的地方。当我指定城市中某个位置的纬度和经度时,我没有找到离我最近的场所。

对于我正在使用的搜索参数:

  • ll = 47.620918,-122.318455(华盛顿州西雅图的一个社区)
  • 意图 = 浏览
  • 半径 = 48 280(约 30 英里)
  • categoryId = 4d4b7105d754a06374d81259(食物),4d4b7105d754a06376d81259(夜生活)

venues/search?ll=47.620918,-122.318455&intent=browse&radius=42820&categoryId=4d4b7105d754a06374d81259,4d4b7105d754a06376d81259

我希望此查询返回最接近指定纬度+经度位置以及食物或夜生活类别的场所。这不是我看到的。取而代之的是,阵中第一个场地是768米的场地,第二个是2162米,第三个是722米。

距离那个纬度和经度不到 700 米的地方有很多美食和夜生活场所。

有人可能会争辩说,我应该根据distance 属性自己获取结果并对其进行排序,但这似乎存在缺陷,原因有两个:

  1. 如果返回的场地列表不是离我的位置最近,我会错过很多场地,因为它们无法全部满足查询结果的最大限制。因此,即使我根据distance 属性进行排序,我也只是对附近不应考虑的场所进行排序。

  2. 我为搜索 API 指定 lat+long 的原因是让foursquare 为我处理“附近”的内容。如果我需要排序,那有什么意义呢?有一种说法是,foursquare 不应该返回与您更相关的场所,但这就是为什么我使用 intent=browse 而不是 intent=checkin'

对于intent=browsedocs 说:

在给定区域内查找场地。与签入意图不同,浏览搜索整个区域,而不是仅查找最接近某个点的场地。

我做错了什么,以至于我没有让最近的场地返回到指定的纬度+经度?

【问题讨论】:

    标签: api mobile geolocation foursquare


    【解决方案1】:

    就像文档说的那样,当您使用 intent=browse 时,Foursquare 不会“仅 [找到] 最接近某个点的场地。” 当您使用带有 ll/半径的 intent=browse 时,将其想象为设置一个区域并要求 Foursquare 从该区域获得“最佳”结果。这并不是说“找到我的结果,从这个 ll 开始一直增长到半径。”

    一般来说,Foursquare 搜索不保证任何特定顺序的结果,除非它在 ​​intent 的描述下指定,不幸的是,这些都没有指定返回的结果将按半径递增排序。

    【讨论】:

    • 好眼光,我误读了文档并将其改为..browse searches an entire region finding Venues closest to a pointinstead of only 是我错过的关键部分 :)
    • 您对让最近的场地到达某个点的最佳方式有任何想法吗?这似乎是功能上的一大遗漏。
    • intent=checkin 将是您在这里的最佳选择
    • thnx octopi.. 不妨在答案中添加 intent=checkin 作为未来访问者的解决方案
    • 签入和浏览似乎返回相同的结果。这是一个过度网站吗?如果我使用那里的网站,最近的场地会按预期显示。让我发疯:/
    【解决方案2】:

    我知道这是一个旧线程,只是想让人们知道您可以使用 sortByDistance=1 作为参数来对离该位置最近的场所进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      相关资源
      最近更新 更多