2014年5月28日水曜日

AndroidのFused Locationでの精度調査

仕事の関係で調査が必要でしたので、AndroidのFused LocationにてGPS、Wi-Fi、携帯ネットワークを使った場合に精度がどのようになるのか検証してみました

以下の条件での検証です
  • Priorityは「LocationRequest.PRIORITY_HIGH_ACCURACY」
  • permissionは「android.permission.ACCESS_FINE_LOCATION」
  • 仕事場近くの道端にて同じ場所に留まった状態で計測
  • Wi-Fiにはe-mobileのPocket Wi-Fi(GL06P)を使用
  • 携帯回線はDocomo
  • 計測は、それぞれの条件で7回(画像の2枚めの前半は重複した情報です)

GPS + Wi-Fi + 携帯ネットワーク


精度は25m~63mくらいでした

複数のプロバイダーを利用しているのでgetProviderの値が[fused]になるのかと思っていましたが、あとの携帯ネットワークだけの時も同じ値となります。そのためFused Locationの場合getProviderは常に[fused]を返すようですね




GPS + 携帯ネットワーク


次はGPS + 携帯ネットワークです
33m~50mと、最初の Wi-Fiも利用したときとあまり変わりませんね
Wi-Fiは精度に影響がなく、携帯ネットワークがあれば、そこそこ精度が出るのかもしれません




 Wi-Fi + 携帯ネットワーク

次に検証したのがWi-Fi + 携帯ネットワークです

精度は60m以上の精度で上の2つと比較すると精度は良くないですが、利用用途によっては十分に利用可能と思います





携帯ネットワークのみ


最後は携帯ネットワークのみの結果です
このデータだけ計測しながら移動しています
最初の3件目のデータまでは、その場所に留まっていたのですが、4件目は仕事場に向かって歩いています
そして、5件目のデータで仕事場のマンションの通路に入った所で精度が一気に悪くなりました
3km近い誤差が出ています
その後、仕事場の部屋に戻ると精度が33mになっているので、場所によって大きく誤差がでるようですね
誤差が大きくでた場所はGPSも反応しない場所なので、この場所で精度を出すのは現状では難しいと思われます




まとめ


以上の結果からは、Fused Locationを使った計測は精度が高いように思われます
今回の検証ではデータが少なすぎて答えは出せませんが、精度を判定して大きな誤差が出そうなデータは捨てていけば、それなりに高い精度で位置測定できそうです
しかし、状況によっては数kmの誤差もありえます

精度は良くても20mくらい。状況によっては精度がもう少し良くなるかもしれませんがピンポイントでの位置特定に利用することは出来ませんね
ピンポイントでの位置特定にはBeaconや音波などなど他の技術と組み合わせて精度を高めることで実現できるかもしれませんが、それはまた別の機会に調査してみたいと思います

以上、せっかく調査してみたのでブログに記事としてまとめてみました

0 コメント:

コメントを投稿