2012-10-07 80 views
2

作爲我的文憑項目的一部分,我遇到了獲取GPS座標的問題。 我開發了一個JavaScript和HTML5程序,它從瀏覽器獲取座標。 但是這個位置的準確性非常低。我用的方法watchPosition()的超時時間:1000HTML5中的GPS準確性

因此,這裏是我的觀察:

  1. 我運行在iPhone上一個HTML5應用,以及精度開始下降。 (從150到1500米)
  2. 比我運行一個本機應用程序與iPhone上的地圖,如谷歌地圖,比我等待,當它定義我的位置。
  3. 比瀏覽器中的我的HTML5應用程序。

現在精度比它(約5-10米)高。 發生了什麼?以及如何在不運行第三方應用程序的情況下讓魔羯座成爲現實?

感謝

回答

0

使用enableHighAccuracynavigator.geolocation.getCurrentPosition。這裏是所有你需要知道的:HTML5 Doctor

+0

我已經在使用它: watchID = watch.watchPosition(updatePosition,error_callback,{enableHighAccuracy:true,maximumAge:1000}); – Dimansib

+0

'watchPosition'和'getCurrentPosition'是兩個完全不同的功能;) –

+0

我必須使用getCurrentPosition與enableHighAccuracy,然後watchPosition? – Dimansib

1

由於Miha建議,我懷疑你需要enableHighAccuracy參數,但是,getCurrentPosition()有時會放棄得太快。它會給你一個位置事件,但有時候,準確度會低於預期。

我寫了watchLocation一個簡單的包裝,也有類似的界面,getCurrentPosition但允許您指定超時值和允許的精度。

這是在github在https://github.com/gwilson/getAccurateCurrentPosition - 這裏的電話是什麼樣子:

navigator.geolocation.getAccurateCurrentPosition(onSuccess, onError, {desiredAccuracy:20, maxWait:15000}); 

翻譯上面的選項成英語 - 這將嘗試找到至少20米精度的設備位置和試圖在15秒內達到此準確度

+0

我不明白geoprogress.it給出的錯誤 – decoder