1

私はアプリを作成していますが、これを思いつくまで問題なくすべてを実行しました。私は GPS とネットワークの場所についてたくさん読んだことがありますが、それでも少し混乱しています。私のアプリケーションは、X 分ごと (ユーザーによっては 0 ~ 120 分) にバックグラウンドで起動し、現在の場所 (GPS かネットワークかはまだわかりません) を取得します。比較的良好なバッテリーを目指していますが、最低 100 メートル (350 フィート) の精度が必要です。5 ~ 100 メートルの精度であれば完璧です。また、精度を改善できない場合は、測定を破棄して、さらに X 分間待ちます。助言がありますか?

4

2 に答える 2

1

GPS 修正の DOP (Dilution Of Precision) 値を探します。位置の計算に使用される GPS 衛星の数に応じて、位置の精度がわかります。ちなみに、位置を計算するために使用される衛星の数は重要です。

そのため、アプリケーションが起動したら、DOP 値が所定のしきい値を下回るまで GPS をポーリングして位置を調べます (DOP 3.0 は非常に正確で、約 20 メートルです)。指定された時間内にそのような値が得られない場合は、受け取った最高の位置を使用してください。

ほとんどすべての GPS チップは、特に Android では A-GPS を使用しているため、かなり迅速に (30 秒以内) 修正を取得できます。A-GPS 情報が古くなっている場合 (A-GPS ファイルはインターネット接続を介してダウンロードされます)、最初の修正にはさらに時間がかかります。位置しています。

バッテリーの使用量を最小限に抑えるには、最初の修正を待ちます。6分以内に修正されない場合は、ポジションがないため、アプリケーションをシャットダウンしてください。最初の修正が完了したら、GPS を 2 ~ 3 分間ポーリングします。DOP がしきい値 (3.0 が適切な推測ですが、自分で試してください) を下回った場合は、ポーリングを停止します。DOP がしきい値を下回らない場合は、DOP が最も低い位置を使用します。

待つ時間が長いほど、修正の精度が向上し、DOP はすべての可視衛星の位置に依存することに注意してください。可視衛星が十分でない場合や、正確な位置を取得するために最適に配置されていない場合があります。

DOP が利用できない場合 (Android Location API の詳細がわからない)、位置を計算するために使用される衛星の数は不正確かもしれませんが、それでも有用な情報です (3 未満、位置を落とす、3 はひどいものです)。 、4 以上が平均、10 がかなり良い)。

DOP の詳細については、こちらをご覧ください。A-GPS について詳しくはこちらを、GPS 全般についてはこちらをお読みください

もちろん、Android は、GSM ネットワークまたは周辺の Wifi ネットワークからの情報を使用して、GPS 信号がなくてもデバイスの位置を特定できますが、位置がどれほど正確かを知る方法はわかりません。

于 2012-12-18T20:27:13.093 に答える
0

最も簡単なことは、Location.getAccuracy()メソッドを使用することです。結果の解釈については、Android での位置精度の測定方法を参照してください。

于 2013-02-26T02:03:04.923 に答える