如何获取Azure NearBySearch的全部查询结果?
Azure Maps NearBySearch 获取全部结果的方法
Azure Maps的NearBySearch API单请求最多返回100条结果,而且没有类似Google Maps的next_page_token这类直接翻页的参数。要获取超过100条的剩余结果,有两种可行方案:
1. 拆分搜索区域分批次查询
把原来的大搜索范围拆成多个小区域,分别发起请求:
- 比如原搜索是大半径的圆形区域,可以拆成多个重叠的小半径圆,或者按网格划分成多个矩形区域
- 每个小区域单独请求结果,最后把所有结果合并并去重(注意处理重复的POI)
2. 用skip参数分批获取结果
虽然单请求的limit上限是100,但可以通过skip参数跳过已经获取的结果,多次发起请求:
- 第一次请求:设置
skip=0&limit=100,拿到前100条 - 第二次请求:设置
skip=100&limit=100,拿到第101到200条 - 重复这个过程,直到返回的结果数量不足100,或者已经获取了
totalResults里的全部数量
注意:skip参数有服务端上限,如果总结果数特别多,可能没法用这种方法拿到全部结果,这时优先用第一种拆分区域的方式。
内容的提问来源于stack exchange,提问作者Federico Gentile
相关产品推荐
相关产品推荐

