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

如何通过Google Places API获取单个邮编覆盖的所有城市?

解决Google Places API获取跨城市邮编对应所有城市的问题

我之前也碰到过一模一样的情况——Places Text Search的设计逻辑就是返回邮编关联的主城市,不会主动枚举所有覆盖的区域。要拿到一个邮编对应的全部城市,你得换用Google Geocoding API,并通过components参数做精准过滤,这比Text Search靠谱多了。

具体解决步骤:

1. 用Geocoding API的components参数发起查询

Geocoding API支持通过components参数锁定目标邮编,这样会返回所有和该邮编绑定的地理实体,包括多个城市。请求示例如下:

https://maps.googleapis.com/maps/api/geocode/json?components=postal_code:94608&key=YOUR_API_KEY

2. 解析结果提取所有城市

这个请求的results数组会包含多条记录,你只需要遍历这些条目,筛选出types数组里包含locality(城市类型标识)的结果就行。针对邮编94608,你会在结果里同时看到:

  • "formatted_address": "Emeryville, CA 94608, USA"
  • "formatted_address": "Oakland, CA 94608, USA"

3. 为什么之前的方法失效?

  • Places Text Search:它的定位是返回最相关的单个地点,优先展示邮编最常关联的主城市,不会枚举所有覆盖区域。
  • 单一坐标反向地理编码:你之前用的坐标大概率落在Oakland的范围内,反向编码自然只会返回该城市。就算遍历viewport内的多个点,效率也远不如直接用Geocoding API的components参数。

额外小提示

如果需要更详细的城市属性(比如边界、人口数据),可以把每个城市对应的place_id传入Place Details API获取,但如果只是单纯拿城市列表,Geocoding API的结果就完全够用了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:58:10