到处查看 - 并阅读了许多有关Google API(地图,地理编码,地方信息,自动填充等)的其他问题 - 并且没有任何效果。
我有一个带有Places,Static Maps和Maps v3& amp;的API密钥。 v2服务已启用。
我正在尝试执行反向地理编码(通过来自lat / long coords的JSON获取街道地址信息)。
以下是我在JavaScript中传递的网址(API密码的最后5位数字替换为#####:
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"
}
欢迎任何帮助,非常感谢。
答案 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
这个小修改对我来说就像魅力一样!
希望这有帮助。