質問: 位置情報(LocationManager)を使ったアプリを開発しているが、位置情報をWiFi及びネットワークで取得した時、現在位置と全く異なる地点の位置を取得することがあります。何か位置取得関数の使い方に問題があるのでしょうか。 解決方法があれば教えて頂けませんでしょうか。 ※位置取得の実装 GPS測位:LocationManager.GPS_PROVIDER Network測位:LocationManager.NETWORK_PROVIDER
回答: 位置情報取得は電波の状況、基地局の距離などを含め様々な情報をもとに算出され、それぞれに誤差がありアプリ側では、結果を取得しているだけなので、きちんと実装していても誤差はでます。 できることは系統誤差がある場合はその補正、加速度センサーの測定値に基づく補正、使用環境に制限があるならそれによる補正(歩いているときにしか使わないなら、歩く速度を超えた移動をした位置情報は除外)などいろいろ考えられます。 どの程度の誤差を許容するか、バッテリーの消費、算出までの時間などの条件を明確にした上で、アプリ側でどのような補正をするか決めて実装してみて、その後発生した誤差の原因が明確にアプリ側にあると分かった場合は、ソースコードと一緒に質問すると具体的な回答がつくかもしれません。