如何使用Google Places API获取国内连锁品牌全部门店地址列表
问题原因分析
你当前的请求和返回结果不符的核心原因如下:
- 你使用的
findplacefromtext接口设计定位为返回最相关的少量匹配结果,本身不支持返回全量匹配条目 locationbias参数强制优先返回你指定的加拿大坐标附近的结果,自然只能拿到当地门店radius参数不属于findplacefromtext接口的有效参数,配置后不会生效
可行解决方法
- 替换使用
textsearch接口:该接口支持返回指定区域内最多60个匹配结果,支持分页查询。正确的请求示例如下:
https://maps.googleapis.com/maps/api/place/textsearch/json?query=对应品牌中文名称®ion=cn&location=区块中心经纬度&radius=200000&key=你的API_KEY
- 拆分国内地理区域:Google Places API单次搜索最多覆盖有限范围,无法一次性返回全国所有结果,你需要将中国区域拆分为多个半径200km以内的地理区块,按区块分别发起搜索请求,才能覆盖所有门店。
- 结果去重:不同区块的搜索结果可能存在重叠,所有请求完成后需要通过门店名称、经纬度组合去重,得到最终全量列表。
注意事项
- 分页查询时,拿到返回结果中的
next_page_token后需要等待2-3秒再发起下一页请求,否则接口会返回请求无效 - 搜索关键词优先用品牌的中文官方名称,搭配
region=cn参数限定搜索区域,避免匹配到境外门店 - Google Places API有调用配额限制,大量请求会产生对应的服务费用,且国内门店数据的覆盖度低于国内地图服务,可根据自身需求选型
内容的提问来源于stack exchange,提问作者Markn
相关产品推荐
相关产品推荐

