MPT.BINの座標情報

昔実験用に以下の2地点を登録したことがあったのでここから想像を巡らす。
経度緯度情報はマピオン情報。

マップコード 000 000
神奈川県横浜市港北区篠原町付近
北緯35/30/00 東経139/37/30 
MPT.BINでの該当部分 47 01 bb 63 3e 68
マップコード 2 000 000
東京都練馬区高松付近
北緯35/45/00 東経139/37/30
MPT.BINでの該当部分 47 81 b7 63 3e 67

前半3バイトが緯度で後半3バイトが経度

この2地点は経度が同じ
一方、MPT.BINも後半3バイトがほぼ同じ
よって、前半3バイトが緯度で、後半3バイトが経度になっていること確定

上位1バイトでの1が約30分(約0.5度)に対応

この2地点の緯度はちょうど15分だけ違う
一方、前半3バイトのMPT.BINの差はほぼ0x008000
よって、緯度15分ぶんの距離は約0x008000で表される。
よって、緯度1度ぶんの距離は上位1バイトでの約2と同じ。

緯度方向のオフセットはほぼ0度

北緯35.5度を2倍すると71。また、MPT.BINでの1バイト目の0x47は10進数では71。
よって、MPT.BINの1バイト目の値がそのまま北緯の2倍に対応しオフセットはない。
なので、MPT.BINの1バイト目が0x00の時は北緯約0度で赤道付近を意味することになる。
(まあ、地図データが入ってないので意味ないけど。)

経度方向のオフセットは約90度

たぶん経度方向も長さの比は同じ2のはず
東経139.5度を2倍すると279。しかしMPT.BINの0x63は10進数では99。
なので、279-99=180のオフセットがあることになる。
180は経度で表すと2で割って90度。
なので、MPT.BINの4バイト目が0x00の時は、東経約90度付近を意味することになる。

2,3バイト目のズレについて

なぜか北緯35.5が0x470000ちょうどではなく0x1bbだけずれてる。
緯度1秒の長さ(緯度35度上) 約30.8m
経度1秒の長さ(緯度35度上) 約25m
あ、そうだった。そういえば、経度1度の長さは緯度によって違うじゃん。
とりあえず、緯度で計算。
緯度1度の長さは30.8*60*60=110880m
110880/2/65536=約0.85m
3バイト分での分解能は約85cm
0x1bbは10進数では443。443*0.85=約375m

んー、アホだ俺。地球が球であることを忘れてたよ…
カーナビの地図ってこの辺の扱いどうしてるんだろ。
天気予報のときのやつのように緯線、経線は円弧状になってるんだろうか。
それともメルカトル図法のように緯線、経線が直線なかわりに九州よりも北海道のほうが大きめになったりしてるんだろうか。