You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Google Places API以返回官方文档表1中的types类型?

解决Google Places API返回表1地点类型的问题

咱们先揪出核心问题:你现在拿到的types是point_of_interest、establishment这类通用类型(对应官方文档的表2),本质是因为API把你的搜索请求匹配到了Ditchburn Place这条街道,而不是你真正要找的Cambridge City Council市政厅实体。要拿到表1里的具体类型(比如local_government_office、city_hall这类),得先让API精准识别到目标地点。

步骤1:修正搜索Query,避免歧义

你的原始query里加了街道名,导致API优先匹配街道而非市政厅。把query改成更聚焦的内容:

query = "Cambridge City Council" 
query = query.replace(" ", "%20")

步骤2:用修正后的请求获取正确的类型

你的现有代码字段配置是对的,只需要替换query后重新请求。完整测试代码如下:

import requests
import json

searchBase = "https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=" 
detailsBase = "https://maps.googleapis.com/maps/api/place/details/json?place_id=" 
query = "Cambridge City Council" 
query = query.replace(" ", "%20") 
inp = "&inputtype=textquery" 
fields = "&fields=formatted_address,name,place_id,type" 
detailsFields = "&fields=place_id,name,permanently_closed,type,url" 
api_key = "YOUR_API_KEY"  # 替换成你的API密钥
api = f"&key={api_key}" 

# 1. 搜索获取正确的Place ID
r = requests.get(searchBase+query+inp+fields+api)
search_result = json.loads(r.text)

# 2. 用正确的Place ID拉取详细信息
if search_result['status'] == 'OK' and len(search_result['candidates']) > 0:
    place_id = search_result['candidates'][0]['place_id']
    detail = requests.get(detailsBase+place_id+detailsFields+api)
    detail_result = json.loads(detail.text)
    print("返回的具体类型:", detail_result['result']['types'])

预期效果

当API精准匹配到Cambridge City Council后,返回的types会包含表1里的具体类型,类似这样:

['local_government_office', 'city_hall', 'point_of_interest', 'establishment']

额外提示

如果还是拿不到表1类型,大概率是目标地点在Google Places数据库里没有被标记为对应具体类型。这种情况你可以通过Google地图的「编辑地点」功能提交修正,但这属于数据层面的问题,代码无法直接解决。

内容的提问来源于stack exchange,提问作者chrc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:42:28