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

如何借助Google Maps API从街道地址获取建筑/机构名称?

如何通过街道地址获取对应建筑/机构名称?

我有一系列街道地址(例如:123 Main Street),需要获取这些地址对应的建筑/机构名称。当前处理流程为:先将地址字符串传入Address Validation API获取Place ID,再将该Place ID传入Place Details API获取标准化地址及其他详情。

但发现同一地址通常对应两个不同的Place ID:一个对应建筑,一个仅对应地址,而Address Validation API返回的是后者。例如输入地址"1000 5th Avenue, New York, NY, 10028"获取大都会博物馆信息时:

import googlemaps

gmaps_client = googlemaps.Client(key=VALIDATION_API_KEY)
address_lines = [
    "1000 5th Ave",
    "New York",
    "10028",
    "New York",
]
response = gmaps_client.addressvalidation(address_lines, regionCode="US")

返回的Place ID为ChIJXZba3JZYwokROceijrH6vFs,将其传入Place Details API:

import requests

place_id = "ChIJXZba3JZYwokROceijrH6vFs"

url = "https://places.googleapis.com/v1/places/" + place_id
fields = [
    "addressComponents",
    "formattedAddress",
    "location",
    "displayName",
]
headers = {
    "Content-Type": "application/json",
    "X-Goog-Api-Key": PLACES_API_KEY,
    "X-Goog-FieldMask": ",".join(fields),
}
response = requests.get(url, headers=headers)

得到的displayName为1000 5th Ave,未包含机构名称。

而通过Place ID查找工具可获取大都会博物馆对应的Place IDChIJb8Jg9pZYwokR-qHGtvSkLzs,传入Place Details API后,displayName值为The Metropolitan Museum of Art,这正是预期结果。

已尝试的其他方案:

  • 若初始输入地址时加入建筑名称,可从Validation API获取到能返回预期displayName的Place ID,但违背从街道地址获取建筑名称的初衷。
  • 使用Nearby Search API查找已有Place ID附近匹配的Place ID,但该API仅支持经纬度和半径筛选,返回结果不稳定。
  • 使用Text Search API也得到类似结果,同一建筑/区域内有多个同类地点时难以准确匹配。

此外,手动在Google Maps搜索地址时,仅返回街道地址,但向下滚动可找到“Directory”或“At this place”板块,列出该地址下的建筑/商家名称。请问是否有API可返回此类信息?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:16:16