我注意到foursquare搜索API有些奇怪。当我在我的城市指定一个位置的纬度和经度时,我没有得到离我最近的场地。
对于我正在使用的搜索参数:
venues/search?ll=47.620918,-122.318455&intent=browse&radius=42820&categoryId=4d4b7105d754a06374d81259,4d4b7105d754a06376d81259
我希望此查询能够返回最接近指定纬度+长位置以及食物或夜生活类别的场所。这不是我所看到的。相反,阵列中的第一个场地是768米的场地,第二个是2162米,第三个是722米。
有些食物和夜生活场所距离纬度和经度都不到700米。
有人可能会说我应该根据distance
属性自行对结果进行排序,但这有两个原因:
如果返回的场地列表不是最接近我的位置,我会错过许多场地,因为它们不能完全符合查询结果的最大限制。因此,即使我根据distance
属性进行排序,我只会对不应被视为附近的场地进行排序。
我为搜索API指定了一个lat + long的原因是让foursquare在“附近”的地方为我做重任。如果我需要排序那么重点是什么?有一种观点认为foursquare不应该返回与你更相关的场所,但这就是为什么我使用intent=browse
代替intent = checkin'
对于intent=browse
,docs说:
查找特定区域内的场地。与签入意图不同,浏览搜索整个区域而不是仅查找最接近某个点的场地。
我做错了什么,以至于我没有让最近的场地回到指定的纬度+长?
答案 0 :(得分:2)
就像文档说的那样,当您使用intent=browse
时,Foursquare不会“仅[找到]最接近某个点的场所。”当您使用intent=browse
时a ll / radius,假设这是设置一个区域并向Foursquare询问该区域的“最佳”结果。它并没有说“找到我从这个ll开始直到半径的结果。”
一般情况下,Foursquare搜索不保证任何特定顺序的结果,除非它在intent
的描述中指定,不幸的是,这些结果都没有指定结果将按增加半径排序。
答案 1 :(得分:0)
我知道这是一个旧线程,只是想让人们知道您可以使用 sortByDistance=1 作为参数来对距离该位置最近的场地进行排序。