我一直在编写一些地图功能。在过去的几天里,我被限制调用浏览器navigator.geolocation.getCurrentPosition。我不知道为什么,但当我运行以下代码时:
navigator.geolocation.getCurrentPosition(
function(){
console.log("success",arguments);
},function(){
console.log("fail",arguments);
}
);
我得到以下错误:
fail {"code":2,"message":"Network location provider at 'https://maps.googleapis.com/maps/api/browserlocation/json?browser=chromium&sensor=true&wifi=mac%3A00-24-aBunchOfCrapAboutMyNetworkingMacIDStuff' : Response was malformed."}
有人能告诉我这意味着什么吗?这个响应是Chromium给我的响应。当我运行相同的代码时,Firefox给了我不同的东西:
fail [
0:GeoPositionError{
"PERMISSION_DENIED":1,
"POSITION_UNAVAILABLE":2,
"TIMEOUT":3,
"code":2
}
]
有什么想法吗?我是不是太打他们的API了,以至于他们拒绝了我的mac地址?或者还有其他什么可以让人想到的吗。我已卸载浏览器并重试。我在我的机器上创建了一个新的用户配置文件,并尝试了它,但失败了。我把硬盘换成了另一台一模一样的机器,但还是出了故障。我不知道它为什么会失败,但它昨天起作用了。让我知道。
我有完全相同的问题。但几个小时后它还没有恢复。在我插入Google API密钥后,情况并没有改变。我查看了报价页面,但我的账户没有达到每日报价。
找到原因了。谷歌最近开始强制使用谷歌api密钥。如果您不提供访问地理位置的密钥,则无法再访问该服务。每日报价也是强制执行的。密钥添加要到几个小时后才能生效(在我的情况下是一天)。
详细信息:此呼叫将在过去工作:http://maps.google.com/maps/api/js?sensor=true
现在您需要这样做:http://maps.google.com/maps/api/js?key=&传感器=真实