【问题标题】:Geocoding API returns ZERO_RESULTS when street address is specified with 'st'使用“st”指定街道地址时,地理编码 API 返回 ZERO_RESULTS
【发布时间】:2013-08-01 10:24:35
【问题描述】:

使用 'st' 的查询返回零结果: http://maps.googleapis.com/maps/api/geocode/json?client=client_id&sensor=false&address=100+main+st%2CAtlanta%2CGA%2CUSA&language=en&signature=sing

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

此查询返回地址: http://maps.googleapis.com/maps/api/geocode/json?client=client_id&sensor=false&address=100+main%2CAtlanta%2CGA%2CUSA&language=en&signature=sign

{
"results" : [ *********** ],
"status" : "OK"
}

这种行为的原因是什么? 搜索字符串“100 Main St, Atlanta, GA”在 maps.google.com 上运行良好

【问题讨论】:

  • 不确定,但您对例如“圣海伦斯山”?缩写不是唯一的。
  • 就我而言,街道是街道。搜索字符串“100 Main St, Atlanta, GA”在 maps.google.com 上运行良好,但地理编码 api 不返回任何结果。

标签: google-geocoding-api


【解决方案1】:

您在这里同时遇到两个问题。

第一。你问的是一个不存在的地址;这将极大地影响 api 为您匹配结果的能力。

第二。正如 cmets 中提到的,“st”有一些歧义等。

最终,您的查询将与结果中的每个条目有一些“相关性分数”,并且只有高于某个内部阈值的结果才会提供给您。

此匹配阈值受上述两个问题的影响。

100 Main St, Atlanta, GA 不是真实的,也无法解析到某个位置。据我所知,它甚至在 maps.google.com 上都不起作用

在匹配位置(无论是否真实)时,您输入的文字很重要。 例如你的第二个例子实际上是在乔治亚州的森林山。 无论出于何种原因,这都是 b/c,缺少“st”使其能够很好地匹配,以便谷歌尽可能地建议它。但是,使用“st”或“street”时,分辨率阈值不是那么好,而且您得到的结果是“零结果”。

使用真实地址,例如:546 main st,您会注意到 ''、'st'、'street' 仍然很重要(它仍然会影响匹配阈值),但不太重要。

这里有一些例子:

curl -s 'http://maps.googleapis.com/maps/api/geocode/json?address=546+main,+Atlanta,+GA&sensor=false' | grep formatted | grep 546
         "formatted_address" : "546 Main Street Northeast, Atlanta, GA 30324, USA",
curl -s 'http://maps.googleapis.com/maps/api/geocode/json?address=546+main+st,+Atlanta,+GA&sensor=false' | grep formatted | grep 546
         "formatted_address" : "546 Main Street Northeast, Atlanta, GA 30324, USA",
curl -s 'http://maps.googleapis.com/maps/api/geocode/json?address=546+main+street,+Atlanta,+GA&sensor=false' | grep formatted | grep 546
         "formatted_address" : "546 Main Street Northeast, Atlanta, GA 30324, USA",

现在,结果的顺序和多重性确实有所不同,如果删除“| grep”内容,您可以轻松观察到这一点,但您可以清楚地看到,在所有情况下,对于这个特定地址,您都会得到一个可行的结果。 对于“每个”真实地址而言,这可能并非如此,但我认为,如果您追求的真实地址的文本不会过于模糊,就像上面的 cmets 所说的那样,您可以合理地期望获得可行的结果.

【讨论】:

    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 2018-10-17
    • 2012-09-15
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多