为什么Foursquare搜索不返回离我指定位置最近的场地?

时间:2013-05-16 07:06:31

标签: api mobile geolocation foursquare

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

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

  • ll = 47.620918,-122.318455(华盛顿州西雅图的一个社区)
  • intent = browse
  • radius = 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'

  3. 对于intent=browsedocs说:

      

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

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

2 个答案:

答案 0 :(得分:2)

就像文档说的那样,当您使用intent=browse时,Foursquare不会“仅[找到]最接近某个点的场所。”当您使用intent=browse时a ll / radius,假设这是设置一个区域并向Foursquare询问该区域的“最佳”结果。它并没有说“找到我从这个ll开始直到半径的结果。”

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

答案 1 :(得分:0)

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