谷歌地图:调用navigator.geolocation.getCurrentPosition时发生位置错误



我一直在编写一些地图功能。在过去的几天里,我被限制调用浏览器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=&传感器=真实

最新更新