JSON响应中的Google Geocode API“REQUEST_DENIED” - 反向地理编码操作

时间:2012-06-27 17:02:18

标签: google-maps-api-3 google-places-api geocode

到处查看 - 并阅读了许多有关Google API(地图,地理编码,地方信息,自动填充等)的其他问题 - 并且没有任何效果。

我有一个带有Places,Static Maps和Maps v3& amp;的API密钥。 v2服务已启用。

我正在尝试执行反向地理编码(通过来自lat / long coords的JSON获取街道地址信息)。

以下是我在JavaScript中传递的网址(API密码的最后5位数字替换为#####:

http://maps.googleapis.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true&key=AIzaSyDbfv8bFidX1hSbXwwKTTxWQYgU7g####

JSON响应是:

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

正如您所看到的,传递了一个“sensor = true”参数 - 根据Google Document supporting this API这是一个问题,但在这里显然不是这样。

我也试过简单地传递

http://maps.googleapis.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true

当URL被输入浏览器的地址栏时返回预期的JSON响应 - 但是当我在HTML文件中添加到JavaScript时,我再次收到:

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

欢迎任何帮助,非常感谢。

2 个答案:

答案 0 :(得分:2)

Google并不特别希望您在网页中使用此静态API。您应该在网页中使用Maps API及其相关的地理编码功能(因为您无论如何都需要在地图上显示结果)。这些静态API旨在供服务器端使用,因此它们现在看起来拒绝带有HTTP_REFERER标头的请求。

(使用密钥服务器端可以跟踪统计信息,但是无效密钥将始终导致REQUEST_DENIED是否存在引用者标头。)

答案 1 :(得分:1)

我一直在努力解决同样的问题,我相信我提出了一个非常实用的解决方案,实际上对我来说效果很好!您只需对请求查询的URI进行一些小修改即可。 而不是查询

http://maps.googleapis.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true

您应该使用以下URI查询google maps api:

http://maps.google.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true

这个小修改对我来说就像魅力一样!

希望这有帮助。