我正在使用地理编码 API 传递邮政编码(主要是 GB)来验证邮政编码是否有效(使用 address_components 和类型,如果它返回“postal_code”我认为它是有效的)但我发现了 2 个问题.
这也是谷歌地图验证邮政编码的最佳方法吗?
“地址组件”:[ { "long_name": "GU2 7UP", "short_name": "GU2 7UP", “类型”:[ “邮政编码” ] },
“地址组件”:[ { "long_name": "OL1 1NY", "short_name": "OL1 1NY", “类型”:[ “邮政编码” ] },
对于这两个问题,我都希望在没有邮政编码匹配的情况下给我答复,并在下面说明,就像对另一个无效的邮政编码 ME4 4QQ 所做的那样
"address_components": [
{
"long_name": "United Kingdom",
"short_name": "GB",
"types": [
"country",
"political"
]
}
谢谢
组件过滤 可能是更好的方法,至少它可以防止 假阳性 结果,例如请求 GU2 7YP 时返回 GU2 7UP:
https://maps.googleapis.com/maps/api/geocode/json?components=country:GB|postal_code:GU2%207YP 返回
ZERO_RESULTS
因为 components
参数 在 上强制执行完全匹配 postal_code:GU2%207YP
是否返回结果主要取决于谷歌地图数据是否准确和最新。
另一种选择是使用新的地址验证API广义上讲提供2种不同的“结果”:
address
:有多少输入被确认为(部分)有效的邮政地址geocode
:谷歌地图将在哪里定位输入(可能或可能不匹配address
)。更多细节在了解验证响应.
例如,Address Validation Demo 返回一个
address
本质上说“是的,GU2 7YP 是一个有效的英国邮政编码”,但返回的 geocode
实际上是 GU2 7UP(地点 ID :ChIJm7gwBcLQdUgRSfAroiN7KYw)因为那是(壁橱)可用的。