2012-02-28 10 views
1

ジオロケーションデータを必要とするJQueryモバイルでPhoneGapアプリケーションを開発しています。現在、getCurrentPosition()によって返される位置は非常に不正確です。アプリケーションは、ポジションを取得するためにGoogle検索サービスを使用しているようです。アプリケーションがGPSを使用するように強制する方法はありますか?PhoneGapでgetCurrentPositionを使用して不正確なGPS座標を返す

ポジションが初めて投稿されたときには、(maximumAgeが0に設定されていても)ポジションを返すことがよくあります。なぜ誰がこのことが分かるのですか?

私は以下のジオロケーションAPIを読んだことがあり、何も見つかりませんでした。

http://dev.w3.org/geo/api/spec-source.html

答えて

5

あなたが試すことができます物事のカップルは、あなたがgetCurrentPositionへの呼び出しでtrueにenableHighAccuracyパラメータを設定していることを確認することです。

しかし、ほとんどのGPSチップは、正確な位置を得るまでに少し時間が必要です。より良い解決策は、watchPositionを呼び出し、この場合に精度がはるかに優れていることがわかるように、3から5の結果が得られるまで待つことです。その後、clearWatchを実行してより正確なGPS位置を使用することができます。

+0

getCurrentPositionではなくwatchPosition/clearWatchを使用すると、デバイス上にある別のGPSアプリケーションと干渉しているようです。 watchPostionでポジションを取得しようとすると、他のアプリケーションは新しい座標の受信を停止します。なぜこれができるのか知っていますか? – user1014759

+0

@ user1014759少し遅れていますが、これはおそらく同じ変数を使用しているためです。たとえば、var onSuccess = function(position)を使用している場合は、var theSuccess = function(position)に変更する必要があります。エラーハンドラで使用される変数と同じです。したがって、forErrors(エラー)などの関数を実行します。私のために働いた。 – jord49

0

これはGeolocation APIであり、ハードウェアGPSの修正ではないため、ネットワークの位置情報のみを取得することができます。 在庫ブラウザにも近接性「機能」があります。たとえば、Fennecではうまく動作します。

2

他の書き込みとして。 getCurrentPositionはメーターに対して必ずしも正確ではなく、GPSがアクティブであるかどうかに依存します。

getCurrentPossitionは、GPSがプロッパー修正を取得している間、検索と初期位置のクイック・ゲットを意味します。

私は、通常、この操作を行います。あなたは、正確な座標を期待するかどうかをチェックできるよう

//Initialize GPS 
navigator.geolocation.getCurrentPosition(onGPSSuccess, onGPSError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }); 
navigator.geolocation.watchPosition(onGPSSuccess, onGPSError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }); 

・タントは、迅速な投稿を取得し、時計の機能が繰り返し位置のために呼び出されます。..

を:position.coords.accuracyコールバック機能のメーター単位の精度。

+0

ありがとう@キム、あなたのソリューションは私のために非常に便利です –

関連する問題