谷歌地图API文本搜索如何筛选business_status为OPERATIONAL的地点
地图API文本搜索按business_status过滤的实现方案
主流地图服务商(含谷歌地图、高德地图、百度地图等)的文本搜索接口默认不支持服务端直接通过请求参数过滤business_status,你自行添加参数不生效是因为接口本身没有适配该过滤逻辑,需拿到返回结果后做客户端二次过滤,具体实现步骤如下:
- 第一步:正常发起文本搜索请求,获取接口返回的全量POI结果集
- 第二步:遍历结果集按需求过滤,两种常用过滤逻辑的代码示例如下:
仅保留营业状态(OPERATIONAL)的地点(JS示例)
// 假设response为接口返回的完整JSON数据 const validResults = response.results.filter(poi => { return poi.business_status === 'OPERATIONAL' })
排除临时关闭、永久关闭的地点(JS示例)
const validResults = response.results.filter(poi => { const invalidStatus = ['CLOSED_TEMPORARILY', 'CLOSED_PERMANENTLY'] return !invalidStatus.includes(poi.business_status) })
补充说明:如果你使用的是谷歌地图Places API,目前仅Place Details接口支持通过fields参数指定返回business_status字段,文本搜索、附近搜索等批量查询接口均不支持服务端过滤该字段,统一按上述客户端过滤方案处理即可。
内容的提问来源于stack exchange,提问作者Jessie Ye
相关产品推荐
相关产品推荐

