指南

查找不完整地址的邮政编码

客户把邮政编码字段留空,并不一定意味着给了您错误的数据。正向地理编码通常可以根据地址的其余部分补上这个空缺。

发送不完整的地址

将您手头的任何文本(至少包括街道和城市)发送到 /v1/forward。结果中的 components 对象包含最佳匹配的邮政编码,即使输入中从未提到过邮政编码。

GET /v1/forward?q=1600 Pennsylvania Avenue, Washington&limit=1
{
  "status": "ok",
  "query": "1600 Pennsylvania Avenue, Washington",
  "results": [
    {
      "formatted": "1600 Pennsylvania Avenue NW, Washington, DC 20500",
      "lat": 38.8977,
      "lon": -77.0365,
      "type": "address",
      "precision": "house",
      "confidence": 0.97,
      "place_id": "def456",
      "components": {"postcode": "20500", "city": "Washington", "region": "DC", "country": "US"}
    }
  ]
}

一个信息更少的示例,以及它为什么重要

并非每个地址都这么完整。只有城市和地区的查询,例如“Springfield, Illinois”,仍然可以返回结果,但 components 中的邮政编码将覆盖整个城市,而不是某一栋建筑,precision 字段的值也会比“house”更粗略。如果您打算把返回的邮政编码打印在运输标签上,而不只是用于地区估算,这个差别就很重要,因为城市级别的邮政编码与门牌级别的邮政编码所提供的保证并不相同。

信任结果

在将返回的邮政编码视为可靠之前,请检查 precision 和 confidence 字段。“house”精度加上高置信度分数,意味着匹配足够具体,可以直接信任该邮政编码值。较粗的精度,例如街道或城市级别的匹配,意味着该邮政编码覆盖的区域更广,可能与客户所指的确切地址不符。

这次查询的成本

这是一次单独的查询,一个地址计为您每日额度中的一次请求。对每个未填写邮政编码的结账或注册表单提交都执行这一操作属于正常用量,很少会接近使用密钥时,或不使用密钥时单个 IP 地址每天包含的 2,500 次免费请求。

没有良好匹配时

结果数组为空,或结果的置信度分数很低,意味着地址太模糊,无法解析。在这种情况下,请直接向客户询问邮政编码,而不要猜测,因为运输标签上错误的邮政编码比空着带来的麻烦更多。

一个值得提前规划的边缘情况

有些国家根本不使用邮政编码,或者使用得非常不一致,以至于某个结果的 components 对象直接省略了该字段。不要把缺少 postcode 字段本身当作错误,先检查 components 对象中的国家,只有当该国家通常应当有邮政编码时,才将该行标记出来供审核。

得到候选邮政编码后,用该编码和 components 对象中的国家直接调用 /v1/postcode,是一种独立复核的快速方法,当原始正向地理编码的置信度处于临界值、而不是明显偏高或明显偏低时,这尤其有用。

用这种方式补全缺失的邮政编码,可以省去一个表单字段,也免去与客户之间的一次来回沟通。完整的字段定义请参见邮政编码查询文档正向地理编码文档