Google Maps GeoCoding ... INVALID_REQUEST?

时间:2015-07-04 07:47:43

标签: google-geocoding-api

我正在试图找出以下网址返回的原因:

<GeocodeResponse>
<status>INVALID_REQUEST</status>
</GeocodeResponse>

我正在使用的URL是(API密钥取出,原因很明显:):)

https://maps.googleapis.com/maps/api/geocode/xml?key=xxxxx&address=Urb.%20Fundaci%F3n%20Mendoza%2C%204ta%20transversal%20D-25.%2CCumana%2C6101%2CVenezuela

我正在传递地址参数...但根据文档,它说错误是:

  

“INVALID_REQUEST”通常表示查询(地址,   组件或latlng)缺失。

https://developers.google.com/maps/documentation/geocoding/

有什么想法吗?我有点失落!

编辑:这太疯狂了!

我将自己的IP添加到API的已接受IP列表中 - 然后从我的浏览器访问该URL:

https://maps.googleapis.com/maps/api/geocode/xml?address=Urb+Fundaci%C3%B3n+Mendoza,Cumana,6101,Venezuela&key=xxx

然后它有效。但是,通过服务器上的简单脚本访问它(在谷歌上列出了正确的IP地址),它给了我{ 'status' => 'INVALID_REQUEST' }错误... ARGH !!!!

2 个答案:

答案 0 :(得分:2)

啊,男人 - 谈论讨厌。对于其他遇到此问题的人 - 请确保任何重音都是URL编码 - 否则您将遇到此问题!在我的Perl脚本中,我使用 URL :: Encode ,将任何utf8转换为编码字符串:

$url .= URL::Encode::url_encode_utf8($address);

现在已经解决了这个问题:)

答案 1 :(得分:1)

我看到同样的错误,但我意识到它来自不同的来源。

对于稍后使用Google搜索的人,请确保发出GET请求,而不是POST请求。这就是为什么它在我的浏览器中使用各种不同的URL编码,但从未在我的应用程序中使用完全相同的参数,因为我总是在我的应用程序中发出POST请求。

我添加了这个作为答案,因为我的问题符合问题中描述的所有症状,但是OP的回答没有解决。