【目次】
【はじめに】
KMZ 形式(Google Earth 形式)で保存されている GPS 軌跡データを、ITM 形式(GPS Photo Tagger 他の形式)に変換するツール、kmz2itm を作成する過程で、ITM 形式について調査を行ったので、その内容を整理してまとめておく。
※内容は不完全で、不明な点も多いので、間違いや補足ございましたら、メールやコメント等でご連絡いただけると幸いです。
【ITM 形式を用いているアプリケーション】
ITM 形式はいくつかのアプリケーションで使われている。どのアプリケーションも画面が似ており、iTravel-Tech 社の OEM と思われる。現時点で、ITM 形式を使っていることが確認できているアプリケーションは以下。アプリケーションが対応している GPS 機器も併記しておく。
【ITM 形式の概要】
ITM 形式は、ファイル形式としては ZIP 形式である。拡張子を .zip に変更して解凍すると、以下の内容が得られる。
【ituser.poi の概要】
ituser.poi は SQLite3 のデータベースファイルである。PupSQLite や SQLite Database Browser などの SQLite ツールで内容を確認することができる。
ituser.poi には以下のテーブル(全 20 個)が含まれている。
【IT_TGVLib】
IT_TGVLib は、他のテーブルに格納されているデータについての情報を保持している。目次のようなテーブル。
全部で 20 行のデータがあり、各行が 1 つずつテーブルに対応している。
列は以下。
【GPSLog】
測定点 1 つ 1 つに関する情報を保持するテーブルその 1。各測定点の測定時刻と、測定時の速度を保持している。
【WP】
測定点 1 つ 1 つに関する情報を保持するテーブルその 2。緯度・経度・高度を保持すると共に、測定点を軌跡として繋げるための情報も保持している。テーブル名は Way Point(軌跡)の略と思われる。
存在意義が不明だが、軌跡線の測定開始時刻を保持しているようだ。
2 レコードが 1 セットとなっており(従って、レコード数は軌跡線の数×2 となる)、1 レコード目が GPSLog の fGPSTime1、2 レコード目が GPSLog の fGPSTime2 を保持している。
【軌跡線取得方法】
軌跡線を取得するには、以下の流れでデータを検索するとよい。
≪GPS 関連の記事一覧≫
- はじめに
- ITM 形式を用いているアプリケーション
- ITM 形式の概要
- ituser.poi の概要
- IT_TGVLib
- GPSLog
- WP
- Line
- VStyle
- VSTag
- PropInt
- 軌跡線取得方法
【はじめに】
KMZ 形式(Google Earth 形式)で保存されている GPS 軌跡データを、ITM 形式(GPS Photo Tagger 他の形式)に変換するツール、kmz2itm を作成する過程で、ITM 形式について調査を行ったので、その内容を整理してまとめておく。
※内容は不完全で、不明な点も多いので、間違いや補足ございましたら、メールやコメント等でご連絡いただけると幸いです。
【ITM 形式を用いているアプリケーション】
ITM 形式はいくつかのアプリケーションで使われている。どのアプリケーションも画面が似ており、iTravel-Tech 社の OEM と思われる。現時点で、ITM 形式を使っていることが確認できているアプリケーションは以下。アプリケーションが対応している GPS 機器も併記しておく。
- GPS Photo Tagger
- CanMore Electronics……GT-730FL-S、GP-101
- Transystem……747Pro、747ProS、PhotoMate887、860E、TripMate850、TripMate852
- ezTour
- Holux……M-241
- ATLASTOUR
- ユピテル……ASG-CM11、ASG-1、ASG-2、AL20
- ユピテル……ASG-CM11、ASG-1、ASG-2、AL20
【ITM 形式の概要】
ITM 形式は、ファイル形式としては ZIP 形式である。拡張子を .zip に変更して解凍すると、以下の内容が得られる。
- attachfile(フォルダ)
- icon(フォルダ)
- imagegrid(フォルダ)
- ituser.itx
- ituser.poi
【ituser.poi の概要】
ituser.poi は SQLite3 のデータベースファイルである。PupSQLite や SQLite Database Browser などの SQLite ツールで内容を確認することができる。
ituser.poi には以下のテーブル(全 20 個)が含まれている。
- IT_TGVLib……目次のようなテーブル。他のテーブルに格納されているデータの情報が格納されている。
- GPSLog……測定点データ。測定時刻と、速度を保持している。
- WP……測定点データ。緯度・経度・高度を保持すると共に、測定点を軌跡として繋げるための情報も保持している。
- Line……軌跡データ。軌跡名、開始地点、終了地点を保持している。
- VStyle……軌跡線のスタイル情報。線の太さ、色など。
- VSTag……軌跡線に関するデータと思われるが、詳細不明。
- CP……詳細不明。
- FileD……詳細不明。
- FTag……詳細不明。
- Map……詳細不明。
- NTag……詳細不明。
- POI……詳細不明。
- PropDouble……詳細不明。
- PropInt……詳細不明。
- PropText……詳細不明。
- TagD……詳細不明。
- TypeD……詳細不明。
- Val……詳細不明。
- ValD……詳細不明。
- VP……詳細不明。
【IT_TGVLib】
IT_TGVLib は、他のテーブルに格納されているデータについての情報を保持している。目次のようなテーブル。
全部で 20 行のデータがあり、各行が 1 つずつテーブルに対応している。
列は以下。
- fUserType……連番。
- fDBType……不明。
- fObjNo……テーブルに格納されているレコードの数(行数)。
- fObjFreeNo……テーブルに格納されているレコードのうち、削除フラグが付いているレコードの数。GPS Photo Tagger は、基本的にデータを削除せず、代わりに、削除フラグを付けて削除したことにしている。例えば、右の画面の 11 行目では、fObjNo が 10777、fObjFreeNo が 10400 なので、WP テーブルの有効レコード数は差し引き 377 ということになる。
- fTypeName……対象となるテーブル名。
【GPSLog】
測定点 1 つ 1 つに関する情報を保持するテーブルその 1。各測定点の測定時刻と、測定時の速度を保持している。
- fID……連番。
- fZero……有効なレコードの場合は 0、無効なレコードの場合は 1。GPS Photo Tagger では、データを削除する際、レコードを削除するのではなく、fZero に 1 を立てて削除したことにしている。
- fGPSTime1、fGPSTime2……測定時の時刻。具体的なフォーマットは不明。
- fGPSSpeed……測定時の速度 [km/h]。
- fGSensorX、fGSensorY、fGSensorZ……名前からして加速度センサーの値を保持するためのフィールドと思われるが、GT-730FL-S による測定においてはすべて 0 となっている。
【WP】
測定点 1 つ 1 つに関する情報を保持するテーブルその 2。緯度・経度・高度を保持すると共に、測定点を軌跡として繋げるための情報も保持している。テーブル名は Way Point(軌跡)の略と思われる。
- fID、fZero は GPSLog と同様。
- fParentID……軌跡線番号(Line テーブルの fID)。fParentID が同じ軌跡同士で、1 つの軌跡線を形成している。
- fNextID……軌跡上で次の測定点が何番の fID かを示す。通常は fID+1。軌跡上、最後の点の場合は、fNextID が 0 となる。
- fGPSLogID……対応する GPSLog テーブルのデータを示す。通常は fID と等しい。
- fMapID……マップ番号(Map テーブルの fID)。通常は 1。
- fPosX、fPosY……不明。通常 -1。
- fLongitude、fLatitude、fAltitude……経度、緯度、高度。
- fOrder……不明。通常 0。
- fTemprature……名前からして温度と思われるが、GT-730FL-S による測定においてはすべて 0 となっている。
- fMBar、fBPM、fRPM……不明。通常 0。
軌跡線データ。軌跡名、開始地点、終了地点を保持している。
- fID、fZero、fMapID はこれまでと同様。
- fName……GPS Photo Tagger で表示される軌跡名。
- fTypeID……不明。通常 2。
- fIsGroup、fParentID、fVIID、fStartID、fEndID……不明。通常 0。
- f1stWPID……軌跡の開始点を示す。WP テーブルの fID。
- fLstWPID……軌跡の終了点を示す。WP テーブルの fID。
軌跡線のスタイル情報。線の太さ、色などを保持している。
- fID、fZero はこれまでと同様。
- fName……スタイルの名前と思われるが、どこにも表示されない模様。
- fVSDefineType……不明。通常 11。
- fVSStyleType、fVSPattern……不明。通常 0。
- fVSWidth……線の太さ。
- fVSHeight……不明。通常 0。
- fVSFColor、fVSBColor、fVSOColor……線の色を指定していると思われるが、具体的なフォーマットは不明。
- fVSFontSize……不明。通常 0。
- fVSFontName、fVSPatternName、fVSIconName……不明。通常 NULL。
軌跡線に関するデータと思われる。
- fID、fZero はこれまでと同様。
- fStartType……不明。通常 11。
- fStartID……不明。通常 fID と等しい。
- fEndType……不明。通常 18。
- fEndID……不明。通常 fID と等しい。
存在意義が不明だが、軌跡線の測定開始時刻を保持しているようだ。
2 レコードが 1 セットとなっており(従って、レコード数は軌跡線の数×2 となる)、1 レコード目が GPSLog の fGPSTime1、2 レコード目が GPSLog の fGPSTime2 を保持している。
- fID、fZero はこれまでと同様。
- fName……1 レコード目が 't1'、2 レコード目が 't2'。
- fObjType……不明。通常 11。
- fObjID……Line テーブルの fID。1 レコード目の fObjID と 2 レコード目の fObjID は等しい。
- fUserFlag……不明。通常 0。
- fValue……1 レコード目が fGPSTime1、2 レコード目が fGPSTime2。
【軌跡線取得方法】
軌跡線を取得するには、以下の流れでデータを検索するとよい。
- Line テーブルのレコードのうち、fZero が 0 のレコードを取得
- そのレコードの f1stWPID を取得
- WP テーブルのレコードのうち、fID が f1stWPID と等しいレコードを取得→軌跡開始点
- そのレコードの fGPSLogID を取得
- GPSLog テーブルのレコードのうち、fID が fGPSLogID と等しいレコードを取得→軌跡開始点の追加情報
- WP テーブルのレコードから fNextID を取得
- WP テーブルのレコードのうち、fID が fNextID と等しいレコードを取得→次の測定点
- このように、次の測定点を次々とたどっていく
- fNextID が 0 になったら軌跡終了
≪GPS 関連の記事一覧≫