少し前から、”GPS携帯のEXIF写真から緯度経度を抜き出して地図登録するアプリ”を開発している。
そのために、会社内でやりきれないことの課外授業として、一人プロジェクトが発動しているわけであるが、携帯機種によっては、緯度経度を抜けなかったり、ものすごく位置がずれる例を発見した。
結果、緯度経度の表現形式(EXIFタグ的には、24バイトのRATIONALデータって決まっているんだが)が異なり、DMS(度、分、秒)とDM(度、分)のデータが存在し、変換式を分岐させないといけないことが分かってきた。DM形式の場合は、実質的にDに全部が書かれている。その場合、分、秒の分子分母がゼロだったりするので、それを判定して、Dを独自で分解する必要があるようだ。
これは微妙に面倒な処理だ。市販の地図ソフトでもDM形式に対応できていないものもあると聞く。
自前で緯度経度を埋め込み、地図に落とすなら、DMS形式に統一してしまえば良いのだが、携帯キャリアまでは選べないので、解析側で何とかする他ないのだ。
■DMSとDMの情報
「あぁぁ、書いてあるところには書いてあるよ」
Exif 2.1のGPS IFDで使われるタグ
Exif02.10に含まれるGPS情報についてまたも私的メモ
度分表記(DMM)を度分秒(DMS)に変換する計算
計算方法の完璧な答え
DMS→DM,DM→DMSの相互変換の方法が書かれている。
じゃあ、24ビットの配列のどこを見てDMS,DMを判断するんだ・・というと
TIFF Tag GPSLatitude
dd/1,mmmm/100,0/1と書かれている。秒の単位の分子が0ならDM形式なんだな。
■GPS携帯機種リスト
・DMSのみ
KDDI-CA W62CA
KDDI-CA W61CA
KDDI-TS W51T
KDDI-TS W53T
KDDI-TS W43T
Docomo N904i
Docomo N906i
・DMS/DM混在
KDDI-KC A5526K