GPS座標をGoogle先生に合わせる方法
GPSモジュールをいただいたので、適当に動かしてみた。いろいろ調べてみると、GPSモジュールはuartで、NMEA形式でデータを出力するやつやった。
1秒毎にいろいろデータを吐き出してくれるみたいで、必要な部分を任意に抜き取って利用する感じ。
RMCの情報を参考にして、デコードしてみるとやりやすかった。
RMCはこんな感じ。
$xxRMC,time,status,lat,NS,long,EW,spd,cog,date,mv,mvEW,posMode,navStatus*cs<CR><LF>
latが緯度ね。次のNSで北か南か。longが経度、次のEWで東か西か。良くできてるね。
spdで対地速度、cogで対地方位もわかるらしい。一つのモジュールでかなりいろいろやってくれる。
mvとかは地磁気関係みたい。
特に目的もなかったので、タラタラ流れてくるデータを見てたら、GoogleMapと照合したくなった。
データから得られた座標をGoogleMapで検索すると、結構ずれてる!!
解決しないとモヤモヤするので、一生懸命調べました。んで、見つけました。
データの座標形式がddmm.mmmmみたいになっとるんでddがdegreeで度やろう、んで、mmmとかは小数点以下やろうと思ってたけど違った!
GoogleMapはdegreeのみで表示してる。なんでか知らんけど途中からフォーマットを勘違いして、dd.mmmで考えとったんで、mmmの部分は0.6で割ってdegreeにしてあげて解決。
まぁ、これは俺が勝手にmmmの部分を小数点以下と思ってたからで、実際はmm.mmmなので、素直にmm.mmmを60で割ってやって、ddに足せばいいだけやね。