调用Google Places Nearby Search API返回复合编码不一致问题
问题原因
- 搜索半径差异:第一次请求半径为15km,第二次请求半径扩大到150km,范围增大后Google Places API会默认你已知搜索区域的全局归属,返回的复合编码(Plus Code)会自动切换为短码格式,短码本身就省略了国家对应的全局标识前缀,仅保留城市及以下精度的编码部分。
- keyword参数影响:新增的keyword参数会改变搜索匹配逻辑,优先返回和关键词相关的POI,同时API会根据关键词的地域指向性进一步精简返回的地址/编码字段,进一步降低了全量复合编码的返回概率。
修复方案
- 对齐参数基线:如果业务允许,优先把第二次请求的半径改回15000,不需要keyword的话就去掉该参数,即可和第一次请求的返回结果保持一致。
- 显式获取全量地址信息:如果必须保留大半径、keyword参数,不要直接使用Nearby Search返回的复合编码,可通过返回结果中每个POI的
place_id调用Google Place Details接口,指定返回全量地址组件和完整复合编码,就能拿到包含国家信息的完整数据。 - 增加region参数约束:请求中新增
region参数,传入目标地区的顶级域名后缀(例如中国传cn、美国传us),既可以减少跨区域的无关搜索结果,也能提升API返回字段的完整度。
内容的提问来源于stack exchange,提问作者Jacob
相关产品推荐
相关产品推荐

