0

始点から終点までの合計距離を計算する必要があるアプリに取り組んでいます。Android SDKのロケーションマネージャーを使用し、ロケーションリスナーを使用し、プロバイダー(GPSとネットワークプロバイダー)の両方を使用します。20秒ごとにロケーションを追跡し、追跡したロケーションを配列リストに追加します。一定期間後、合計距離を次のように計算します

total distance = dist at point[0,1]+ dist at point[1,2] + ... +dist at point[n-1,n]

ここ0,1,2,...,nで、は配列リストの場所の値のインデックスです。

いくつかのテストの後、正確な結果が得られませんでした。実際の走行距離計の値の約60〜70%。他に使用できるものがあるかどうかをガイドしてください。より正確な結果が得られた方法を教えてください。

4

1 に答える 1

1

GPS とネットワークの位置情報にはある程度の不確実性が伴うため、通常、走行距離計などと比較した場合、どちらも正確な距離を示すことはできません。屋外にいて都会の峡谷にいない場合は、通常、GPS の方がネットワークの場所よりも正確な距離を推定できます。

距離 (表示されているもの) が過小評価されているのは、おそらくサンプリング レート (20 秒ごと) または失われた GPS 信号が原因です。サンプリング レートを 4 秒ごとに 1 回程度に増やして、GPS ユニットが修正を失っていないことを確認してください。GPS の感度はデバイスによって大きく異なる可能性があるため、いくつかの異なる Android デバイスでテストしてみてください。また、Android デバイスで GPS 精度を測定するために私が開発した Android アプリをチェックすることもできます: http://www.gpsbenchmark.com/

距離の過大評価は、通常、GPS ノイズ、または小さな (場合によっては大きな) GPS 位置誤差による位置の跳ね返りによって引き起こされます。カルマン フィルターは、このノイズの影響を軽減する良い方法です。また、パスをフィルタリングして、線を単純化することで細部を減らすこともできます。これを行う Douglas-Peucker アルゴリズムの実装は、MyTracks プロジェクトの Apache 2.0 で利用できます: http://code.google.com/p/mytracks/source/browse/MyTracks/src/com/google/android/apps /mytracks/util/LocationUtils.java#78

于 2012-09-07T16:52:55.340 に答える