• 締切済み

スマホ(android)のGPS誤差

アプリ開発でGPSを用いるのでandroid端末を使ってGPSから緯度経度、高度の測定を行ったのですが、水平、垂直ともに精度が平均50mずれます。 開発といっても個人で作っているだけです。 高精度モードというものがあるのでそれを用いた結果となります。GPSのみの計測であると3000mずれることもあります。 誤差を修正しようと思い 1mあたり緯度 : 0.000008983148616 1mあたり経度:0.000010966382364を得られた精度に掛け算し端末のデバイスの座標から引き算を行ったのですが、これはおそらくダメです(理由は後述) 誤差修正のよい方法はありますか? androidの高精度モードに詳しい方のみで結構ですが、高精度モードでは高度がとれない理由を教えてください。 ------------------------------------------------------------------------------------------------------------------------ 計測にはUnityというソフトでC#のプログラムを用いています。 using UnityEngine; using System.Collections; public class TestLocationService : MonoBehaviour { IEnumerator Start() { // First, check if user has location service enabled if (!Input.location.isEnabledByUser) yield break; // Start service before querying location Input.location.Start(); // Wait until service initializes int maxWait = 20; while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return new WaitForSeconds(1); maxWait--; } // Service didn't initialize in 20 seconds if (maxWait < 1) { print("Timed out"); yield break; } // Connection has failed if (Input.location.status == LocationServiceStatus.Failed) { print("Unable to determine device location"); yield break; } else { // Access granted and location value could be retrieved print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp); } // Stop service if there is no need to query location updates continuously Input.location.Stop(); } } ------------------------------------------------------------------------------------------------------------------------ Input.location.lastData.latitude:緯度 Input.location.lastData.longitude:経度 Input.location.lastData.altitude:高度 Input.location.lastData.horizontalAccuracy :水平方向精度 先ほど述べた誤差修正方法ですが、horizontalAccuracyが50mのときhorizontalAccuracy * 0.000008983148616 , horizontalAccuracy * 0.000010966382364を求め現在地から減算しているのですが、現在地すらずれているのでおそらくこの方法はダメです

noname#230705
noname#230705

みんなの回答

noname#252929
noname#252929
回答No.2

>誤差修正のよい方法はありますか? ありません。 そもそもGPSは、誤差が含まれて居るからです。 誤差が含まれて居るものを、いくら合わせようとしても無理な話です。 ただ、それをなくす為に、空港などでは、D-GPSの技術を使っています。 固定された定点でGPSを受信して、そのGPSのデータと、固定されて居るばしょでの誤差情報を別の通信手段を持って相手に伝え、それで誤差を修正するというものです。 17年くらい前の車の純正GPSなどでは採用されて居るものもありましたが、現在では、D-GPSの情報も提供が終了されましたので、それを使うこともできなくなりました。 誤差情報は、いつも一定ではなく、変化します。(わざと誤差を作っています。) なので、固定数値を入れても意味がありません。 どうしてもというのであれば、固定地点で、D-GSPの情報を生成して、そのデータを反映させる方法しかありません。 カーナビなどは、マップマッチングという方法を使って、この道であろう。という内容と、曲がり角などの情報などから、表示上の位置を修正してこのへんだろうという表示を行なっていますので、正しいように見える内容になっていたりします。 スマホなどの場合、その辺を使わないものは、残念ながら、誤差は対応できないとなってしまいます。 「みちびき」などに対応してくれれば、精度は上がるんですけどね。

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.1

GPSは衛星の電波をキャッチできないと、精度が下がります。 見通しの良い屋外であれば10m以下の精度で高度も取れますが、屋内やビルの谷間などでは精度が数100mで高度は取れないということもあります。 場所を変えて試してみてはいかがでしょうか。

関連するQ&A

  • GPS 緯度経度などについて

    GPSの誤差は1mとかD-GPSとか利用したときと同じとか 聞きますが実際、もっと誤差があるのでしょうか? 誤差を小さくしたいのですが 何かよい方法はありませんか? 業務用を使うとかしかないのでしょうか? ハンディーGPSの 誤差 15RMS? アルファベットのところは どう読むのでしょうか? 緯度経度で英語では、どう発音(スペルなども知りたい)するのでしょうか? 例 東経135度 52分 31.5秒   北緯35度 23分 31.8秒

  • 2点のGPS座標から距離を求めたい

    GPS座標(wgs84)の2点間の距離を出す方法がわかりません・・・ 単純に何秒=何mだと思ったら、google地図で調べていたら経度と緯度で1秒の大きさがまったく違ったため、プログラムに誤差が起きてしました・・・ 何が起きているのかわからないので、教えてください(><)

  • GPS付携帯

    GPS付の携帯電話で、携帯から緯度・経度情報を 送信できる機種は、調べたところ au のA5302CA と DOCOMO のF661i の2種類が見つかったのですが、 他には無いのでしょうか? また、DOCOMOの場合は、DLPサービスを利用しないと GPSの機能が使えないのでしょうか? 精度・価格面から、お勧めがあれば教えてください。

  • ハンディGPSでの測量

    ハンディタイプのGPSってありますよね。 山登りやレジャー船舶等で使われるものだと思います。 それを、土木の測量に応用することは可能でしょうか? 測量といっても、境界杭を復旧するための事前測量です。 単純に考えると、境界杭の緯度経度を記録しておけば 復旧の際、同じ緯度経度に復旧すればいいと思うのですが・・ 可能か否か?精度は?座標への変換は? 何でもいいので教えてください!

  • 現在携帯GPSを探しています。

    現在携帯GPSを探しています。 お世話になります。 求める機能としては、その場所に足ってボタンを押すと、緯度経度と標高(精度は1mくらいで十分) がわかるということが必須条件です。標高というのが難しいと思っていたのですが、今はなにやら 出せるようになったらしいです。 さらに、 ・微妙に運転でも使える ・生活防水 というのもあるとなお素晴らしい感じです。 このような機能をもった携帯GPSで、オススメの機種がありましたら紹介してください。

  • スマホのGPSの精度は、100メートルくらいですか

    私のiPhone4では、GPSの誤差が50mくらいあります。 古い端末からか・・と思いきや、先日、docomoの最新(Android:店頭デモ機)でも100mくらい離れた「現在地」を表示しました。 誤差が出るときの東西南北の規則性はありません。 カーナビの精度に比べるとずいぶん違うと思いますが、スマホの精度ってこんなものなのでしょうか?

  • Androidアプリにて標高を取得する方法について

    こんにちは。最近Androidのアプリ作りを始めた者です。 今、google maps APIを用いて、現在地の緯度、経度、住所、標高の情報を取得するAndroidアプリケーション作りに励んでいます。 location.Geocoderクラスを用いて、GPSにて取得した緯度、経度情報を渡して住所情報を取得することができたのですが、同様の方法で標高の値を取得する方法がわからず困っています。 Google Elevation APIというものがあるようですが、これはandroidアプリからは参照することができないように思います。 importするだけでAndroidで簡単に高度を取得できるAPIをご存知の方がいらっしゃったら教えてほしいです。 なお、GPSのgetAltitude()の方法もあるのですが、精度がいまいちなのと、今後現在地と目的地のプロファイルを表示するアプリも作りたいので、やはり緯度経度を渡せば標高を返してくれる方法を知りたいです。 どなたかよろしくお願いします。

  • GPSの緯度、経度が計測機器で異なる

    ・自分の現在地を他者に知らせるのに、GPSの緯度と経度を測定し相手に知らせる為にスマホにGPSのアプリをインストールしました。 ・そのアプリで現在地の情報を取り込み、同時にナビ(ミニゴリラ)でもGPS情報を取り込んだ所、緯度、経度ともにスマホのアプリとナビでデーターが僅かに異なっております。 ・度、分までは同じですが、秒がどちらも異なります。スマホで取り込んだデーターをナビに入力すると直線で、200m程ずれています。ナビの緯度よりスマホの緯度は12秒プラスで、経度は逆にスマホが11秒マイナスです。 何が考えられますか、よろしくお願いいたします。

  • GPSかGPSロガーについて

    GPSを購入して、盗難にあった場合に取り戻せるようにGPSかGPSロガーを購入しようと思っております。そのため、なるべく精度があるもの(DGPSなど)で小型のものを探しています。精度15メートル以内で携帯(最悪ノートパソコンでもしかたがないが回答で付記していただきたいです)から位置を確認できる商品はないでしょうか?携帯GPSですと頻繁に100メートルの誤差があるとインターネットでかかれていましたのでそれは、NGです。ロガーで精度があるものでもいいので回答をお待ちしております。GPSですとGarminを考えています。このGarminで細かな住宅地まで判別できるかわかりませんが、この点でもコメントをいただけるとたすかります。ロガーについてもコメントをよろしくお願いします。予算はオークション等で中古で7万円くらいをかんがえています。

  • GPS(緯度,経度)から,ローカル(局所平面)のXYZ座標を求めるには?

    GPSに関して,何度か質問をさせていただいております。 以前,GPS(緯度,経度)から,地心座標系(XYZ)への変換について教えていただきました。 その方法で地心座標系(XYZ)を計算することができたのですが,緯度,経度,平均海水面からの高さ(MSL)から,局所平面(ローカル)座標系(X,Y)を求める方法について悩んでおります。 例を申しますと,平坦地の100m(南北方向100m,東西方向100m)の矩形のラインをGPSで計測し,地心座標系で軌跡を求めると,南北方向の100mに対して,距離が70mの長方形の走行軌跡になってしまいます。 GPSで平面での走行距離や方向を求めたいと思っております。 緯度,経度情報からローカルの平面座標系(X,Y)(m単位)を求める方法をご存知でしたら,教えてください。よろしくお願いします。