我必須在這裏做錯事,但我找不到...我爲公司網站製作一個頁面,除其他外,根據用戶的當前位置爲工作地點提供路線。爲了獲得他們的位置,我使用了Firefox中實現的Geolocation API(我正在使用FF9和現在的FF10進行測試)。就目前而言,我與在示例代碼測試Wikipedia article:地理定位API不起作用,谷歌地圖也不是「我的位置」
<html>
<head>
<title>Geolocation Test</title>
<script type='text/javascript'>
var gl;
function displayPosition(position) {
var p = document.getElementById("p");
p.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>" + position.timestamp +
"<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" +
"<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></table>";
}
function displayError(positionError) {
alert("error " + positionError.code);
}
try {
if (typeof navigator.geolocation === 'undefined'){
gl = google.gears.factory.create('beta.geolocation');
} else {
gl = navigator.geolocation;
}
} catch(e) {}
if (gl) {
gl.getCurrentPosition(displayPosition, displayError);
} else {
alert("Geolocation services are not supported by your web browser.");
}
</script>
<body>
<p id='p'></p>
</body>
</html>
(複製/粘貼到文本編輯器,另存爲「whatever.html」,並將該文件拖動到瀏覽器打開它)
非常簡單的代碼,它實際上運行良好,上週四,01/26/12。 (我知道,我知道,人們說,「它昨天工作了!」,當他們真的搞砸了,但我發誓它真的做到了。)從那以後,它一直給我錯誤代碼2,「POSITION_UNAVAILABLE」。我在工作網絡上使用我的工作計算機,家中互聯網上的工作計算機和家用計算機以及我的手機上的工作計算機在WiFi熱點上進行了試用,並且每次都給出錯誤代碼2。
我想也許我會莫名其妙地在我的瀏覽器或我的網絡設置或東西(雖然我無法想象)瘋玩的東西了,所以我試了下測試,每個人都應該能夠做到:
- 轉到maps.google.com。
- 搜索「西雅圖」(或其他位置,無論)。
- 點擊「查詢路線」按鈕。
- 在左邊的指示框中,「A」應該說「我的位置」,「B」應該說「西雅圖」。 (如果A中沒有提及「我的位置」,請在框中鍵入「m」,並且自動填充下拉菜單通常會將「我的位置」作爲第一個選項。)
- 單擊「取得方向」按鈕。
- Firefox應該彈出消息說maps.google.com想知道您的位置。點擊「分享位置」。
- 幾秒鐘後,它應該會顯示您從某處(無論它認爲您的服務器在哪裏)到西雅圖的方向,或者「A」框應該變爲空白,並且會顯示「無法找到您的位置」或類似朝向地圖的頂部。
這是奇怪的事情:我從來沒有得到這個在任何計算機上工作。我的工作電腦(在FF10和Chrome上),我的同事電腦,我的家用電腦和我的GF工作電腦都做同樣的事情;沒有人可以找到位置。
所以我的問題是:是位置API下跌或什麼,或者我搞砸了嗎?我一直無法在網上找到API停機的跡象,而且看起來中斷的可能性不大,但如果是這樣,爲什麼它在我嘗試過的任何計算機上都無法工作?其他人是否可以複製這些發現或知道我做錯了什麼?
謝謝!
是的,API已啓動並正在運行。由於您已經嘗試了屬於多人的電腦,因此我也排除您將瀏覽器設置爲永遠不會共享您的位置。這聽起來似乎更合理,因爲你的瀏覽正在嘗試,但因爲某些事情正在發展而失敗。 – miguev 2012-02-02 00:42:44
我在俄勒岡州的波特蘭。我希望谷歌知道那是什麼。 :)我可以看到一個ISP阻止它,但我已經嘗試了至少應該有四個獨立的提供者:我的工作互聯網訪問實際上是通過內部網連接到東海岸某處的外部世界,然後我的家庭互聯網ISP,我的Android手機的wifi熱點,以及我的GF的工作連接。它會彈出一個框詢問我是否想每次分享位置,以便該部分工作正常,但隨後會返回錯誤代碼2和我的測試代碼,並且無法在Google地圖上找到「我的位置」。 – Sam 2012-02-02 14:58:29