谷歌地图 GEO 结果

Posted

技术标签:

【中文标题】谷歌地图 GEO 结果【英文标题】:Google Map GEO Results 【发布时间】: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 已弃用? 【参考方案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 返回错误的结果。

【讨论】:

以上是关于谷歌地图 GEO 结果的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图 api 不再工作

线条未正确显示d3.js geo和google地图

谷歌地图 GeoComplete 与 GeoJson

谷歌地图意图返回错误:没有找到处理意图的活动

从 php 中的谷歌地图获取国家名称

谷歌地图 API 获取 GPS 坐标