2012-02-14 85 views
1

我一直在編寫一些地圖功能。在過去的幾天裏,我被禁止打電話給我的瀏覽器navigator.geolocation.getCurrentPosition。我不知道爲什麼,但是當我運行下面的代碼:GoogleMaps:調用navigator.geolocation.getCurrentPosition時的PositionError

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地址?或者有別人可以想到的其他東西。我卸載了瀏覽器並再次嘗試。我在我的機器上創建了一個新的用戶配置文件並嘗試使用它,但失敗了。我將我的硬盤換成另一臺相同的機器,但仍然失敗。我不知道它爲什麼失敗,但它昨天工作。讓我知道。

+0

今天再次工作,所以我猜測,這是一個每日配額或其他內容,並且他們基於MAC地址,機器名稱和其他內容的組合來追蹤它。這就是我能想到的。 – frosty 2012-02-15 14:31:18

回答

0

我有完全相同的問題。但幾個小時後還沒有恢復。情況沒有改變,我插入了Google API密鑰。我檢查了報價頁面,我的帳戶沒有達到每日報價。

找到原因。谷歌最近開始強制使用googleapi密鑰。如果您沒有提供訪問地理位置的密鑰,則無法再訪問該服務。每日報價也被強制執行。直到超過幾個小時(在我的情況下爲一天)之後,關鍵添加纔會生效。

詳情: 這個調用將在過去的工作: http://maps.google.com/maps/api/js?sensor=true

現在,你需要做的是: http://maps.google.com/maps/api/js?key= &傳感器=真

+0

您的同一個域上的其他機器是否有可能使用配額?那是我們決定發生的事情。 – frosty 2012-03-14 14:21:09

+0

情況並非如此。我檢查了Google API控制檯的配額頁面,並看到我的帳戶未達到配額限制。正如我所說的(在編輯版本中),您需要在添加密鑰後等待。 – berniey 2012-03-15 10:22:31

相關問題