【问题标题】:Location not found with Google Maps API使用 Google Maps API 找不到位置
【发布时间】:2013-06-11 15:21:59
【问题描述】:

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

1606 ULSTER AVE, 卡特琳湖, NY 12449

Searching Google Maps 在我的浏览器中使用此地址会产生正确的结果。但是,Google Maps API yieldsZERO_RESULTS

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

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

【问题讨论】:

    标签: google-maps geocoding


    【解决方案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
    

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

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

    【讨论】:

    • 在一些(很多?)国家,邮政编码是寻找地点的首选快捷方式。作为测试,请转到google.com.sg 并搜索 417396。您将直接降落在公寓。现在尝试通过地理编码 API 搜索“417396”——结果为零。通过 API 的行为与您在网站上搜索的内容不一致。
    • @10basetom 你是对的。听起来这里提到了三种不同的“服务”,谷歌搜索引擎、谷歌地图和谷歌地方 API。每一个都会返回不同的结果,就像你让三个不同的人告诉你关于古根海姆博物馆的事情一样。一个人可能会告诉你哪个座位最好,一个人可能会非常准确地告诉你如何到达那里,一个人可能会告诉你这个名字听起来有点熟悉,但他们只知道这些。此处引用的三种不同服务具有完全不同的功能。
    • 杰弗里,我刚刚意识到我打错了:“go to google.com.sg”应该是“go to maps.google.com.sg”。如果 maps.google.com.sg 使用的是 Places API 而不是 Geocoding API,那么您能否指出一个关于使用 Places API 进行 gmaps 搜索的好教程? (例如,搜索字符串“417396”将返回与网站上相同的位置)
    • 杰弗里,我没有找到好的教程,但这已经足够了:):developers.google.com/maps/documentation/javascript/examples/…
    【解决方案2】:

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

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

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

    【讨论】:

    • 您是说我已经爱上的熟悉的网络前端是 Google 地方信息吗?我想这是有道理的,为什么结果可能会有所不同。我仍然不确定为什么地理编码器会被地址阻塞。更改数字也会产生成功的结果。
    • Google Maps 使用许多不同的来源来获取结果,其中包括 Google Places 数据和地理编码器数据库。地理编码器很挑剔,数据经常更改并且可能不准确(在这种情况下,结果是插值的(“location_type”:“RANGE_INTERPOLATED”),不确定为什么它不适用于经过验证的 USPS 邮政编码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2014-05-06
    • 2016-01-03
    相关资源
    最近更新 更多