我注意到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
属性自己获取结果并对其进行排序,但这似乎有缺陷,原因有两个:
如果返回的场地列表不是最接近我的位置,我会错过很多场地,因为它们不能全部符合查询结果的最大限制。所以即使我根据
distance
属性进行排序,我也只是对附近不应该考虑的场所进行排序。我为搜索 API 指定 lat+long 的原因是让foursquare 为我处理“附近”的内容。如果我需要排序,那有什么意义呢?有一个论点是,foursquare 不应该返回与您更相关的场所,但这就是我使用
intent=browse
而不是 intent=checkin' 的原因
对于intent=browse
,文档说:
在给定区域内查找场地。与签入意图不同,浏览搜索整个区域,而不是仅查找最接近某个点的场地。
我做错了什么,以至于我没有让最近的场地返回到指定的纬度+经度?