Android の位置測位には GPS を使うものと、WiFi(+基地局?)を使うものがあります。
既に知れ渡っている通り、GPS は精度は高いですが、電池消費が激しいです。
一方 WiFi による位置測位は、データベース化された無線LANルータの位置と、Android 端末での電波強度などから位置を推定するもので、GPS ほど精度は高くないものの、GPS が使えない屋内などでも使用できる利点があります。(詳しくは 「wifi 位置情報 仕組み」 とかでググってください)
今回は、GPS ほどは電池を消費しない、WiFi による位置測位がどれ程の精度か、ためしに自分が会社から帰る道程で計測してみました。
使用端末: IS03 移動ルート: JR金山駅 → 二川駅 (共に愛知県) 移動手段: JR東海道線・特別快速 (Max 時速100km/h くらい?) 移動時間: 約1時間
1分に1回計測を行う。 GPS(GPS_PROVIDER) と WiFi(NETWORK_PROVIDER) を同時に計測開始する。 GPS を起動し、計測が完了したらすぐにGPSを終了する。1分後また起動…その繰り返し。
まず GPS です。画面左上から右下へ向かうルートです。73点測位されました。(★は気にしないで下さい。私のお気に入りの場所です(^^)
つぎに WiFi です。こちらは 65 点測位されました。Android の位置取得の仕組みは位置情報が変化しないとイベントが発生しないため、GPS よりもやや少なくなっています。それでも予想外の多さでした。
途中、ヒゲのようなものが出ています。大きな誤差のように見えますが、異常なのは1点だけです。 それを削除したのが 2枚目の画像で、キレイな線になっています。 このようなヒゲができる原因としては、WiFi では無線ルータの ID に対して位置を付与するため、その無線ルータが引越しなどで移動すると、付与した位置とズレてしまうことになります。 推測ですが、このような「移動した無線ルータ」から位置を取得してしまったのではないかと考えます。
このヒゲ、Accuracy で判断できないのか?と @RKisato さんからご指摘いただきましたが、この点の Accuracy は 5000m 、しかし実際はもっとズレています。他にも Accuracy が 5000 に近い点は複数ありましたが、ここほどずれていませんでした。なので、Accuracy も判定基準に成り得ないと思っています。
GPS と WiFi(ゴミ削除後)を重ねてみました。
意外な程、ぴったりと重なっています。もっと拡大すると1~2km ズレているところもありますが、俯瞰した地図では、 WiFi 測位は GPS と比べてもまったく問題とならない精度であることが分かりました。
検証しました → 基地局での位置測位の精度を調べてみた
ここで示した地図上の軌跡は「時間軸」が考慮されていません。一見、「同じ時刻で同じ位置」であるように見えますが、同じ位置で見たときに時刻がズレているかも知れません。(というより必ずズレはあって、それが許容範囲内かどうかがポイントですが)