GoogleMaps:调用navigator.geolocation.getCurrentPosition时的PositionError

时间:2012-02-14 23:39:45

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

我一直在编写一些地图功能。在过去的几天里,我被禁止拨打我的浏览器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地址?或者还有别人可以想到的东西。我卸载了我的浏览器并再次尝试。我在我的机器上创建了一个新的用户配置文件并尝试使用它,但它失败了。我将我的硬盘换成了另一台相同的机器,它仍然失败了。我不知道它为什么会失败,但昨天它正在运作。让我知道。

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题。但几个小时后它还没有恢复。我插入Google API密钥时情况没有改变。我查看了报价页面,但我的帐户未达到每日报价。

找出原因。 Google最近开始强制使用googleapi密钥。如果您未提供访问地理位置的密钥,则无法再访问该服务。每日报价也是强制执行的。直到超过几个小时(在我的情况下为一天)之后,关键的添加才会生效。

详细说明:   这个电话过去会有效:       http://maps.google.com/maps/api/js?sensor=true

现在你需要这样做:       http://maps.google.com/maps/api/js?key=&安培;传感器=真