MotoJapan's Tech-Memo

技術めも

【 GPS 基礎知識 2】 GPS LOGGERについてより詳しく-NMEAフォーマットについて

前回GPSの投稿でさらっと流していたformatConvertでしたが、
理解を深めるためにGPSのフォーマットについて調べてみました。

前回はNMEAフォーマットをKMLフォーマットに変換しました。


一部を取り出すとこんな具合

[NMEA]
$GPRMC,044954.810,A,[A],N,[B],E,009.1,335.2,060215,,,A*6D

[KML]
<Document>
 <name>GPS device</name>
 <snippet>Created 木 2 12 00:42:37 2015</snippet>
 <LookAt>
 <gx:TimeSpan>
    <begin>2015-02-06T04:49:54.810Z</begin>
    <end>2015-02-06T04:49:54.810Z</end>
 </gx:TimeSpan>

 <longitude>[X]</longitude>
 <latitude>[Y]</latitude>
 <range>1300.000000</range>
・・・

※[A], [B], [X], [Y]は適当な数

何がどこに対応しているかという話ですが、[NMEA]のフォーマットから以下の通りのようです。

 


NMEAフォーマット


  • NMEA 0183 (略してNMEAとも)は、音波探査機、ソナー、風速計(風向風速計)、ジャイロコンパス、自動操舵装置(オートパイロット)、GPS受信機、その他数々の機器のような海上電子装置における、電気的・データを合わせた仕様である。 これは米国に本拠を置く米国海洋電子機器協会により規定され管理されてきた。( 参照:wikipediaより )
  • ","区切りで左から順位意味が決まっている
  • 改行コードセンテンス区切り
  • Messageによって取得できる情報が異なる(よく目にするのは $GPRMC Message )
  • [ $GPRMC Message ] の場合、左から、

          + UTC時間(hhmmss.ss), ---> 044954.810

          + ステータス(A=有効、V=警告), ---> A

          + 緯度情報, ---> [A]

          + 北極N or 南極S, ---> N

          + 経度情報, ---> [B]

          + 東経E or 西経W, ---> E

          + 地表における移動速度, ---> 009.1

          + 地表における移動の真方位, ---> 335.2

          + 協定世界時(UTC)での日付, ---> 060215

          + 磁北と真北の間の角度の差, ---> x

          + 磁北と真北の間の角度の差の方向, ---> x

          +モード, N = データなし,

                 A = Autonomous(自律方式),

                 D = Differential(干渉測位方式), E = Estimated(推定), ---> x

          + チェックサム, ---> A*6D


以上がkmlに変換されてgooglemapのマイマップに食わせることができるようになります。


まぁ必要情報だけ取り出して、別の地図情報にマッピングするのもアリですね。

 

その他のメッセージも興味ある人は以下が詳しいです。私も参考にさせて頂きました。
http://www.hiramine.com/physicalcomputing/general/gps_nmeaformat.html
http://www7.ocn.ne.jp/~mackey/mackey/navitra/nmea.html

 

今日は以上!