根据 USPS,我的地址是有效地址...
1606 ULSTER AVE, 卡特琳湖, NY 12449
在我的浏览器中搜索此地址的谷歌地图会产生正确的结果。但是,Google Maps API 产生 ZERO_RESULTS
:
{
"results" : [],
"status" : "ZERO_RESULTS"
}
这发生在我大约 1% 的位置。为什么 API 返回单独的结果?如何让它产生与浏览器 UI 相同的结果?
根据 USPS,我的地址是有效地址...
1606 ULSTER AVE, 卡特琳湖, NY 12449
在我的浏览器中搜索此地址的谷歌地图会产生正确的结果。但是,Google Maps API 产生 ZERO_RESULTS
:
{
"results" : [],
"status" : "ZERO_RESULTS"
}
这发生在我大约 1% 的位置。为什么 API 返回单独的结果?如何让它产生与浏览器 UI 相同的结果?
这是一个 Places API 结果,而不是来自地理编码器。
看起来邮政编码混淆了地理编码器,如果我删除邮政编码,它会返回一个结果:
也许如果您在提交地址进行 Google 地理编码之前验证/标准化地址,您会得到更好的结果。在 Google 上快速搜索“地址验证”将为您提供许多很好的工具来做到这一点。
@geocodezip 是正确的,当您删除邮政编码时,您会得到更可预测的响应。这可能是因为邮政编码是城市/州组合的数字表示,通常在许多表中被视为正标识符。但是,由于美国邮政服务可以随时更改邮政编码,因此始终删除邮政编码可以获得更一致的响应(如果您遇到问题)。总是删除邮政编码的问题在于,您现在已经删除了 20% 的地址信息,而且很多时候邮政编码可以胜过糟糕的城市/州组合,仍然可以获得有效的结果。
考虑以下有点无效的地址:这失败了:
275 north main Hollywsdfsdfsdfsdfood CA 84627
如果您丢弃邮政编码,您将一无所获,因为 275 north main 不是“Hollywsdfsdfsdfsdfood CA”中的有效地址
但是,如果您保留邮政编码并使用它而不是不太可能的“Hollywsdfsdfsdfsdfood CA”作为城市/州指示符,那么您最终会在犹他州 Ephraim 84627 中获得一个完全有效的地址。
这是SmartyStreets上的一个示例,因为 Google 地图无法使用虚假城市名称处理它。验证地址为:
275 N Main St Ephraim UT 84627-1107
因此,回到地理编码之前地址验证的想法,然后您可以将该地址放入谷歌地图并轻松获取您的地理编码。甚至可以保留您当前的流程,然后为失败的 1% 添加一个单独的例程。
【我每天都在处理这种事情,我在SmartyStreets工作】