2

根据 USPS,我的地址是有效地址...

1606 ULSTER AVE, 卡特琳湖, NY 12449

在我的浏览器中搜索此地址的谷歌地图会产生正确的结果。但是,Google Maps API 产生 ZERO_RESULTS

{
   "results" : [],
   "status" : "ZERO_RESULTS"
}

这发生在我大约 1% 的位置。为什么 API 返回单独的结果?如何让它产生与浏览器 UI 相同的结果?

4

2 回答 2

1

是一个 Places API 结果,而不是来自地理编码器。

看起来邮政编码混淆了地理编码器,如果我删除邮政编码,它会返回一个结果:

http://www.geocodezip.com/v3_example_geo2.asp?addr1=1606%20ULSTER%20AVE,%20LAKE%20KATRINE,%20NY&geocode=1

于 2013-06-11T15:40:13.650 回答
1

也许如果您在提交地址进行 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工作】

于 2013-06-11T16:53:42.657 回答