我正在開發一個網站,它依賴於拉取移動用戶的地理位置數據。我通過做它的典型方式:Android上的javascript地理位置無法正常工作
function initialize() {
if(window.google && google.gears) {
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(useLocation, errorOnLocate);
}
else if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(useLocation, errorOnLocate);
}
else {
alert("no geo found");
}
}
function errorOnLocate(message)
{
alert(message);
zoomTo(-34.397, 150.644);
}
這總是失敗,[對象PositionError]到errorOnLocate功能,即使我轉的地理定位方法的順序。
這是HTC的英雄與Android 2.1使用任何瀏覽器內置。我的GPS是開着的,我已經指示瀏覽器允許網站查看我的位置。谷歌地圖原生應用程序上的「位置」功能在手機上提取我的位置很好
此外,如果我在我的個人計算機上使用FireFox 3.5訪問我的網站,它會發現我的位置正確。它使用ip和ap數據點的組合)。無論哪種方式,它使用相同的JavaScript。
編輯:這是瀏覽器中的html/js,而不是本機應用程序。另外確切的錯誤信息是'最後的位置提供商被禁用'
嗯,謝謝你的回覆。這是一種不同的方法,但行爲是奇怪的。它需要2分鐘才能找到一個位置,一旦它顯示了座標約5秒鐘,然後最後只顯示「錯誤」。 – 2010-07-30 01:38:42
我在上面的代碼中添加了選項,它的工作原理相同,需要2分鐘才能獲得位置,但至少不會出錯。關鍵是enableHighAccuracy標誌,每次都沒有錯誤標誌。你知道有一個更專業的論壇來進行這項調查,因爲在2分鐘內獲得鎖定這個項目已經死亡。 – 2010-07-30 02:01:36
奇怪,我幾乎立即在我的Nexus One上收到回覆。也許這是設備的問題,而不是代碼?我會用模擬器嘗試這一點,並通過DDMS發送模擬位置數據。 – 2010-07-30 02:17:17