Google Places API多类型地点单次搜索问题(旧问题更新)
Google Places API & AutoComplete 单次请求筛选多类型地点的解决方案
哈哈,这个问题我之前踩过坑!Google Places相关API确实支持单次请求筛选多种地点类型,但不同接口的参数格式不一样,稍不注意就会出错,我给你捋清楚两种场景的正确用法:
一、Nearby Search(获取附近特定类型地点)
如果你是用Nearby Search接口拉取周边的餐厅、商店和宗教场所(教堂属于这类),正确的参数格式是用**竖线|**分隔多个官方认可的类型值:
示例请求URL
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=你的纬度,你的经度&radius=5000&types=restaurant|store|place_of_worship&key=你的API密钥
关键注意点
- 别用自定义类型名!比如你想搜教堂,不能直接写
church,官方对应的类型是place_of_worship,一定要用Google官方规定的有效类型名称; - 不要混用父子类型(比如同时写
food和restaurant),API会忽略其中一类,导致结果不符合预期; - 确保你的API密钥已经启用了「Places API」权限,不然会返回权限错误。
二、Place Autocomplete(地点自动补全)
如果是用AutoComplete接口做输入提示,多类型的参数格式不一样,需要把多个类型放在括号里,用逗号分隔:
示例请求URL
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=你的输入关键词&types=(restaurant,store,place_of_worship)&location=你的纬度,你的经度&radius=5000&key=你的API密钥
额外小技巧
如果想覆盖更宽泛的场所,可以用types=establishment(代表所有商业场所),再结合具体类型缩小范围,但你要的餐厅、商店、教堂用上面的组合就足够精准了。
常见排坑指南
- 如果返回
INVALID_REQUEST:大概率是类型参数格式错了,检查是不是用对了分隔符(Nearby用|,AutoComplete用括号+逗号); - 如果返回
ZERO_RESULTS:要么是该区域确实没有对应类型的地点,要么是半径设置太小,或者类型名写错了; - 如果请求超时/权限错误:检查API密钥的权限和配额是否充足。
内容的提问来源于stack exchange,提问作者user9225081
相关产品推荐
相关产品推荐

