1

ユーザーの位置を取得する単純な Android アプリケーションを作成しています。

FusedLocationAPI を使用して位置を提供しています。

  mLocationRequest = LocationRequest.create()
            .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
            .setInterval(5000)
            .setFastestInterval(5000);

ユーザーがボタンを押すと、アプリは最初に最後の既知の場所を確認します。これが 1 分未満で精度が 50m 未満の場合、その場所が使用されます。そうでない場合、アプリは位置が 50m 未満の精度で受信されるまで位置の更新を要求します。その後、バッテリーを節約するために、アプリは更新の要求を停止します。

これは 99% の確率で非常にうまく機能します。ただし、テストでは、同じ位置に対して 2 つの読み取り値が取得されたにもかかわらず、報告された座標間の距離が 110m であるという状況が発生しました。その理由を理解しようとしています。

測定値 #1: 36m の精度で 10:46 に撮影。

読書 #2: 26m の精度で 13:27 に撮影。

ユーザーは同じ場所(約 2m 以内)にいます。それらの位置が精度の端にあるため、ポイント間の距離は最大で 52m しかないと思います。なんで110mなのかわからない

明らかな何かが欠けていますか?

4

1 に答える 1

1

それは精度の数値が意味するものではありません。グーグルドキュメントから引用:

精度は 68% 信頼の半径として定義されます。つまり、この場所の緯度と経度を中心とし、精度に等しい半径で円を描くと、68% の確率で真の場所が円の内側にあるということになります。

統計用語では、位置誤差は正規分布でランダムであると想定されるため、68% の信頼円は 1 つの標準偏差を表します。実際には、位置誤差は常にこのような単純な分布に従うとは限らないことに注意してください。

http://developer.android.com/reference/android/location/Location.html#getAccuracy

于 2015-03-08T20:03:31.773 に答える