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

如何通过Place Details API获取特定地区的所有邮政编码?

解决方案:处理Place Details API多邮政编码地区无postal_code返回的问题

核心原因

Place Details API的postal_code字段仅返回单一邮政编码对应的区域,像城市、大都会这类覆盖多个邮编的地理实体,API不会返回该字段——因为这类区域没有统一的单一邮编可对应。

可行变通方法

1. 降级查询层级,获取子区域的邮编

针对华盛顿、利物浦这类多邮编地区,调用Place Search API(文本搜索或附近搜索),限定在目标地区范围内,获取其下属的更小行政单元(比如美国的ZIP Code Tabulation Areas、英国的Outcode区域),再对这些子区域调用Place Details API提取具体邮编。

  • 示例参数(以华盛顿为例):
    query=Washington, DC&type=postal_code&country=us
    
    该请求会返回华盛顿下辖所有邮编区域的Place ID,逐个查询即可拿到对应邮编或前缀。

2. 解析address_components字段提取邮编相关信息

即使没有postal_code字段,部分多邮编地区的address_components里可能包含邮编前缀/范围信息:

  • 美国地区:查找类型为postal_code_prefix的组件
  • 英国地区:查找类型为outcode的组件(英国Outcode是邮编前半部分,比如L1对应利物浦的部分区域)
  • 示例解析逻辑(伪代码):
    for component in place_details['address_components']:
        if 'postal_code_prefix' in component['types']:
            print(component['long_name'])
        elif 'outcode' in component['types']:
            print(component['long_name'])
    

3. 结合Geocoding API反向地理编码

如果已知目标地区的中心点坐标,调用Geocoding API的反向地理编码,设置result_type=postal_code,获取中心点附近的邮编,再结合区域范围筛选符合的邮编集合。

  • 示例参数(华盛顿中心坐标):
    latlng=38.9072,-77.0369&result_type=postal_code&country=us
    

4. 预存地区邮编映射表

对于高频查询的多邮编地区,可预先从公开邮编数据库收集该地区的所有邮编或前缀,建立Place ID与对应邮编集合的映射表,查询时直接匹配返回。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:55:25