【问题标题】:Google Map GEO Results谷歌地图 GEO 结果
【发布时间】:2010-01-25 20:19:03
【问题描述】:

我对 Google 地理结果感到非常沮丧,希望有人能告诉我最好的办法。

我创建了一个 AutoSuggest 功能,您可以在其中开始输入地址,Google 会回复建议。然后用户选择并继续前进。

但在我希望他们继续下一页之前,我想验证他们的选择。我原以为这很容易,因为我们只检查 Google 已经提供的内容。但是当我进行验证查找时,它没有显示任何结果。

一些示例代码:

假设我从建议中选择了这个地址:Suffield, CT 06078, USA

然后在验证时,我使用这个地址进行第二次查找。

$string = "Suffield, CT 06078, USA";    
echo 'http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q='.urlencode($string).'';

它给了我错误代码 602 (G_GEO_UNKNOWN_ADDRESS)

它给了我地址怎么找不到?

我该如何解决这个问题?

【问题讨论】:

  • 如果您删除州或邮政编码,它似乎可以工作。我不知道为什么...
  • maps.google.com/maps/geo 是否已弃用? API 已弃用?

标签: google-maps geolocation


【解决方案1】:

你是对的。这很奇怪。

请注意,当您删除 CT 和 06078 之间的空格时,它确实有效:

http://maps.google.com/maps/geo?q=Suffield,+CT06078,+USA&output=csv&sensor=false

以上返回 41.9817631,-72.6506462。 (Link to Google Maps)


对这些坐标进行反向地理编码:

http://maps.google.com/maps/geo?q=41.9817631,-72.6506462&output=csv&sensor=false

返回:

200,4,"Suffield, CT, USA"

【讨论】:

  • 是否因删除空格而感到厌烦?可能需要备份 Yahoo API,他们可能会删除空间并重试
【解决方案2】:

这确实很奇怪,但我能够使用完整的州名验证地址。

不起作用:

http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q=Suffield,%20CT%2006078

有效:

http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q=Suffield,%20Connecticut%2006078

是的,他们提供给您的地址在他们自己的系统中不起作用。话虽如此,寻找哈特福德,CT 确实有效。看起来他们的数据可能存在列表差异,因此 Suffield + CT 返回错误的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多