4

私の卒業プロジェクトの一環として、私は GPS 座標を取得するという問題に直面しました。ブラウザーから座標を取得する JavaScript と HTML5 を使用したプログラムを開発しました。

しかし、位置の精度は非常に低いです。watchPosition()タイムアウトのあるメソッドを使用します:1000

だからここに私の観察があります:

  1. iPhone で HTML5 アプリを実行すると、精度が低下し始めます。(150 ~ 1500 メートル)
  2. 次に、自分の位置が見つかるまで待つよりも、Google マップなど、iPhone でマップを使用してネイティブ アプリを実行します。
  3. 次に、ブラウザーで HTML5 アプリに移動します。

そして今、精度は以前よりも高くなっています(約5〜10メートル)。何が起こったのですか?また、サードパーティのアプリを実行せずに、現在のように精度を高くするにはどうすればよいですか?

4

2 に答える 2

3

Miha が示唆したように、enableHighAccuracy パラメータが必要だと思いますが、getCurrentPosition()すぐに諦めてしまうことがあります。位置イベントが表示されますが、場合によっては精度が低くなることがあります。

watchLocationと似たインターフェースを持つのシンプルなラッパーを作成しましgetCurrentPositionたが、タイムアウト値と許容可能な精度を指定できます。

https://github.com/gwilson/getAccurateCurrentPositionの github にあります。呼び出しは次のようになります。

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

上記のオプションを英語に翻訳 -- これは、少なくとも 20 メートルの精度でデバイスの位置を見つけようとし、この精度を 15 秒間達成しようとします。

于 2012-10-07T21:47:09.300 に答える
1

とともに使用enableHighAccuracynavigator.geolocation.getCurrentPositionます。知っておくべきことはすべてここにあります: HTML5 Doctor

于 2012-10-07T11:07:02.167 に答える