使用Google Maps API找不到位置

时间:2013-06-11 15:22:00

标签: google-maps geocoding

我的地址是有效地址according to the USPS ...

  

1606 ULSTER AVE,LAKE KATRINE,NY 12449

在我的浏览器中对此地址

Searching Google Maps会产生正确的结果。但是,Google Maps API yields ZERO_RESULTS

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

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

2 个答案:

答案 0 :(得分:1)

This是Places API结果,而非地理编码器。

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

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

答案 1 :(得分:1)

也许如果您在提交谷歌地理编码之前验证/标准化地址,您将获得更好的结果。快速谷歌搜索“地址验证”将为您提供一些很好的工具来做到这一点。

@geocodezip是正确的,当您删除邮政编码时,您会得到更可预测的响应。这可能是因为邮政编码是城市/州组合的数字表示,通常被视为许多表中的肯定标识符。但是,由于美国邮政服务可以随时更改邮政编码,因此可以通过始终删除邮政编码获得更一致的响应(如果遇到问题)。始终删除邮政编码的问题在于您现在已经删除了20%的地址信息,而且很多时候邮政编码都可以胜过错误的城市/州组合,并且仍能获得有效的结果。

考虑以下无效的无效地址:此失败:

275 north main Hollywsdfsdfsdfsdfood CA 84627

如果你丢弃邮政编码,你什么也得不到,因为275 north main不是“Hollywsdfsdfsdfsdfood CA”中的有效地址

但是,如果您保留邮政编码并使用该邮政编码而不是不太可能的“Hollywsdfsdfsdfsdfood CA”作为城市/州指定人,那么您最终将获得犹他州Ephraim 84627中完全有效的地址。

以下是SmartyStreets的示例,因为googlemaps无法使用虚假的城市名称来处理它。验证地址是:

275 N Main St Ephraim UT 84627-1107

因此,回到地址验证的想法,然后在地理编码之前,您可以将该地址放入googlemaps并轻松获取地理编码。甚至可以保留当前的流程,然后只为失败的1%添加一个单独的例程。

[我每天都在处理这类事情,我在SmartyStreets工作]