9
11
2009
GPS-CS3のデータを活用する(その2)
応用編:GPS-CS3のデータをGPX形式に変換する
山に登る人たちの間では 「カシミール3D」というソフトウェアがGPSデータを活用することができるアプリケーションソフトウェアとして有名ですね.カシミール3DでGPS-CS3のデータを直接取り込めるかどうかは分かりませんが、GPSロガーとして最も一般的なGarmin のデータを直接取り扱えるようですので、GPS-CS3のデータをGPSBabel+でGarminのデータ形式に変換すれば良さそうですね.
プログラミングに精通している人でなくても、Exel のマクロを使いこなすスキルがあれば GPS-CS3のデータをExcel上で読み込んで、マクロ処理で目的の形式のデータに変換するのも一つの手ですね.Excelのグラフ機能を使って、トラックデータをグラフにして表示して見るのも面白そうです.
自分のホームページ上でGoogleMapのような地図とGPSデータを組み合わせて山行の記録をビジュアルに表示しようと思っても、JavascriptやPHP、CSSなどのWEBに関する専門知識がないとお手上げです.自分でホームページを開設していなくてもブログを利用してインターネット上にコンテンツを公開している人も多いのですが、アメブロなどの一般向けのブログサービスを利用しているだけですので、ユーザが自分でブログのコンテンツをカスタマイズするのは難しいのではないでしょうか.
今回紹介するのは、”XML Google Map” という WordPress用のプラグインソフトウェアで、GPX形式のGPSトラッキングデータやジオタグが埋め込まれた写真データを、Google Map 上に表示するものです.尤も WordPress??? プラグイン??? というような人達には無縁の話ですが、WordPressユーザの方は”XML Google Map”を試してみて下さい.
このブログを見ている人はどちらかというとIT系の人ではなく、一般の人が大部分でしょうからあまり役に立たないかもしれません.
XML Google Mapについて(追記:このプラグインは既に開発停止のようです)
XML Google Mapについての詳細は開発者のPatrick Matusz さんのブログをご覧下さい.ドイツ語がメインですが、主要部分は英語でも記述されています.
XML Google Mapには幾つか機能があるのですが、今回はジオタグ情報が付加された写真データをGoogle Map 上にサムネイル表示させる機能とGoogle Map上にトラッキングルートを表示する機能を紹介します.
写真データをGoogle Map 上にサムネイル表示させる
この機能を利用するには、XML Google Map以外に NextGen Gallery を予めWordPressにインストールしておく必要があります.
手順としては、
・予めJPEG画像データにGPSのジオタグ情報を埋め込んでおく
GPS-CS3の本体機能や付属ソフトウェアでジオタグ情報を埋め込んでも良いが、標高(altitude) 情報は付加されない.
GPSBabel+にもJPEG画像データにGPSのジオタグ情報を埋め込む機能はあるが、私が試した限り誤差が大きく使い物にならなかった
・ジオタグ情報が埋め込まれた画像データを NextGen Galleryに取り込む
・WordPressの記事中で、XML Google Map用のショートコードタグを記述する.
例:[xmlgm ngg_gallery=xxx] xxxは NextGen Gallery のギャラリー番号
富士山 須走口登山道にて 8/29 2009
[xmlgm ngg_gallery=87]
(注)現在は XMLGoogleMapsを使用していませんので、XML Google Mapの実例を表示することができません.このブログでは”GPSMap” というプラグインを自分で開発して組み込んであります.
GPSトラッキングデータをGoogle Map 上に表示させる
GPS-CS3で記録したトラッキングデータをGoogle Map 上に表示させる手順は次のようになります.今回は標高と移動速度のグラフも同時に表示させてみます.
・GPS-CS3のトラッキングデータをGPSBabel+を使ってGPX形式に変換する.
・GPX形式のトラッキングデータをブログサーバ上の適切なディレクトリにアップロードする(一般的には /wp-contents/uploads/ の下)
・WordPressの記事中で、XML Google Map用のタグをアンカータグ中に記述する.
例: <a title=”Mt. Fuji Subashiri Trail : 08/29 2009″ href=”https://y2tech.net/develop/wp-content/uploads/MtFuji/WG20090828220323.gpx” > [deltazoom=-1;gpxelevationcolor=green;gpxspeedchart=show;] </a>
(注)現在は XMLGoogleMapsを使用していませんので、XML Google Mapの実例を表示することができません.このブログでは”GPSMap” というプラグインを自分で開発して組み込んであります.
【追記:XML Google Map の副作用について】
XML Google Map WordPress plugin を使っていたら、思わぬ所で副作用が出てしまいました.記事の中でGoogle Map や Google Earth のデータ(拡張子が .kml, kmz などのファイル)にリンク(アンカータグ)が張られている場合、そのリンクを全てXML Google Mapで表示しようとしてしまいます.
XML Google Mapが記事のテキストをパースして、勝手にリンク(アンカータグ)をXML Google Map用に置き換えてしまいます.XML Google Mapの表示を想定していないので、データを正しく処理できずエラーとなってしまいます.
【回避方法: kml, kmz ファイルへのリンクを無視させる場合】(専門家向けの内容です)
XML Google Map plugin のPHPファイル xmlgooglemaps.php の162行目にある関数
function xmlgooglemaps_converter_kmx($content) { preg_match_all('#\]*?)href=["\']([a-zA-Z0-9@\/:\-\._?&=;~]*?\.km[lz])["\']([^\>]*?)\>(.*?)\<\/a\>#i', $content, $found); for ($i=0; $i< count($found[0]);$i++) { $file = $found[2][$i]; 以下省略
冒頭部分に、" return $content; " という1行を追加すればkml, kmz ファイルへのリンクが無視されます.
function xmlgooglemaps_converter_kmx($content) { return $content; preg_match_all('#\]*?)href=["\']([a-zA-Z0-9@\/:\-\._?&=;~]*?\.km[lz])["\']([^\>]*?)\>(.*?)\<\/a\>#i', $content, $found);
XML Google Map の設計がまずいようですね.アンカータグを用いるのではなく、WordPressのショートコードタグ機能を使えばこのような副作用は起きないのですが....