我正在使用 Foursquare API 来获取某个类别的场地列表。一个重要的要求是清单是详尽的,即包括所有相关点。v2/venues/search API 端点对输出实施了 50 个场所的限制。所以想到的第一个想法是将区域分成几个部分(使用“sw”和“ne”参数),然后组合结果。
显然,点的密度会因位置而发生巨大变化,因此我们需要使用某种自适应算法来灵活调整搜索窗口的大小,使其包含所有点。此外,遇到速率限制的风险也会增加,因此我们可能需要算法在其请求配额用完时停止。
最后,似乎判断搜索窗口是否应该进一步缩小的唯一方法是计算结果中的点数:如果我们有少于 50 个的点,那么我们就有了这部分的完整列表,并且可以继续下一个;否则,我们应该进一步拆分它。这似乎很浪费,因为我们将丢弃中间结果(即我们的搜索树中除了叶子之外的所有结果)。
所以这里有一些问题:
- 这是整理详尽清单的最佳方式吗?也许我缺少一些 API 功能?
- 在这种情况下您会使用任何特定的算法吗?
- 您将如何减少必须丢弃的结果数量?
提前致谢!