Google Places API雷达搜索返回非请求类型结果问题咨询
我之前在使用Google Places API时也碰到过一模一样的困惑,给你拆解下可能的原因和可行的解决办法:
Radar Search的类型匹配逻辑自带“宽泛性”
Radar Search是基于Google Place的类型层级来筛选结果的,它不会严格只返回带有你指定的convenience_store类型的地点。比如有些商户可能被归类到store这类父类型下,就会被Radar返回,但本身没有标记更细分的convenience_store子类型。简单说就是,Radar会匹配父类型覆盖的所有子类型,哪怕目标子类型没直接关联到该地点。Place Details默认返回的类型不完整
你调用Place Details时,默认返回的字段可能只包含部分核心类型,漏掉了像convenience_store这种细分类型。建议在请求里明确指定fields=types参数,强制获取该地点关联的所有类型。示例请求:https://maps.googleapis.com/maps/api/place/details/json?place_id=YOUR_PLACE_ID&fields=types&key=YOUR_API_KEY商户数据标注存在遗漏
Google Places的商户数据来自用户提交、第三方数据源和Google自身维护,偶尔会出现标注不完整的情况。如果你确认某个地点确实是便利店但没有convenience_store类型,可以通过Google地图的“反馈”功能提交修正,帮助完善数据。换用Text Search提升精准度
如果Radar Search的结果始终达不到预期,不妨试试Text Search,直接把查询文本设为"convenience store",结合位置和半径参数,这样能更精准匹配实际的便利店场景。示例请求:https://maps.googleapis.com/maps/api/place/textsearch/json?query=convenience+store&location=YOUR_LOCATION&radius=YOUR_RADIUS&key=YOUR_API_KEY
内容的提问来源于stack exchange,提问作者Rob T

