よなよな GARMIN (4) 〜 GPSBabel を使ってみる
ほぼ一年ぶりの GARMIN ねた。最近の感触では,MacOSX の環境でコマンドラインから geko などの GPS 機器と通信するには GPSBabel が最有力っぽい。私は今のところ,geko 201 のシリアルケーブルに I-O DATA の USB-RSA Q3 をかませて,USB で通信する方式をとっている*1。以下,参考のために手順を載せておく。
- gpsbabel のインストール。ただ使いたいだけであれば darwinports を使用してインストールするのが手っ取り早い*2。
% sudo port install gpsbabel
- ドライバをインストールした後に,変換アダプタを接続すると
/dev/cu.I-O DATA USB-RSAQ3 /dev/tty.I-O DATA USB-RSAQ3
という 2 つのデバイスファイルが作成される。 - FAQ らしいのだが,通信には tty ではなく cu のデバイスを使用しないと動かない。詳しい所は未調査。
% gpsbabel -t -D 9 -i garmin -f /dev/cu.I-O\ DATA\ USB-RSAQ3 -o gpx -F ~/Desktop/geko_track.xml
みたいな感じ。-t オプションは軌跡を書き出すオプション。その他にも -w(waypoint)や -r(route)などがある。 -o オプションで出力するファイルフォーマットを,-F オプションでファイル名を指定する。
gpsbabel のウリは,GPS 機器との通信だけではなく,その名が示唆するように,あらゆる GPS 機器のフォーマットを相互に変換できるところにもある。というわけで,出力ファイル形式はほぼなんでもサポートしている。今回は扱いやすい XML 形式の gpx を選んだ。USB はどーなのか分からないが,USB 変換コネクタを経由したシリアル通信は,デバイスの初期化に失敗したり,パケットの読み込みに失敗したり,しょうしょう難があるようだ。今回,10000 点の track points を読み込んでみたが,途中何度もエラーが起こって,結局 10 回くらいトライしてようやく全て読み込めた。ちょっといじれば治りそうなので,原因を追及してみようと思う。ソースコードはかなりきれいで参考になる。GPL だし,これが私の決定版になりそうな予感*3。
ここまでうまくいけば,後は Web 2.0 な人たちが楽しく料理してくれるんじゃないだろうか。たとえばこんな感じで。GPX と写真をアップロードすると,ファイルの作成日時から自動的に位置情報を更新して,google map 上に配置してくれる画像データベースを,誰か作ってくれないかなぁと期待しています。