GPX2JSGI(GPX→JSGIコンバータ)

電子国土WebシステムAPIのサポートはまもなく終了します。今後は、地理院地図版ルート地図をご利用ください。

logo

GPX2JSGI Ver.1.3(地理院地図対応版)について

!注意!GPX2JSGIを初めて使う人は、次節の「GPX2JSGIとは?」以降をまずご一読下さい。

GPX形式からKML形式への変換について、地理院地図および地理院地図版ルート地図で読み込めるKML形式(KMLウェブ地図プロファイル)へ変換を行うようにしました。また、JSGI形式からKML形式への変換を行うJSGI2KML(JSGI→KMLコンバータ)も同梱しています。

インストール

ダウンロードのページからgpx2jsgi-1.3.zipをダウンロードして、適当なフォルダの下に展開すると、gpx2jsgi-1.3というフォルダの下に次の8つのファイルが配置されます。

gpx2jsgi.exe       … GPX→JSGI/KMLコンバータ実行形式ファイル。
jsgi2kml.exe       … JSGI→KMLコンバータ実行形式ファイル。

gpx2jsgi.tcl       … gpx2jsgi.exeのソースファイル(Tcl/Tkスクリプト)。
jsgi2kml.tcl       … jsgi2kml.exeのソースファイル(Tcl/Tkスクリプト)。
mkexe.bat          … Tck/Tkスクリプトをラッピングして実行形式ファイルを作成するバッチファイル。

gpx2jsgi.xsl       … GPX→JSGI変換スタイルシート。
gpx2kml.xsl        … GPX→KML変換スタイルシート。
jsgi2kml.xsl       … JSGI→KML変換スタイルシート。

GPX2JSGI Ver.1.3はVer.1.2との差分のみの配布となっています。上記の8つのファイルを、Ver.1.2 をインストールしたフォルダ(アプリフォルダ)にコピーして下さい。jsgi2kml.*は新規のファイルで、残りは既存ファイルの差し替えとなります。

GPX2JSGI Ver.1.3の機能や操作方法は従来と変わりません(KML形式への変換結果が変わるだけです)。なお、GPX→KML変換の際に参照されるアイコン画像の変換テーブルのファイルは、iconkml.xmlからiconlut.xmlに変更されました。

JSGI2KML

jsgi2kml.exe(青い羽根のアイコン)をクリックすると、GUIが起動して窓が開きます。まず、『←フォルダ』ボタンと『←ファイル』ボタンで変換元のJSGIファイル(拡張子.xml)を選択します。『←フォルダ』でフォルダを選択すると、その下のフォルダ階層を再帰的に探索してJSGIファイルをリストアップします。『←ファイル』ボタンは、GPX2JSGIの『←追加」と同じ機能で、ファイル単位で選択します。リストにはいったファイルは『除外』と『クリア』でリストから取り除くことができます。

『変換』ボタンは、リストの全ファイルに対してJSGI形式からKML形式への変換を開始します。変換結果の出力先は変換元と同じフォルダ内で、変換元のファイル名の拡張子を.xmlから.kmlに変えたものとなります。変換先に既に同名のファイルがある場合には、リスト上でファイル名の背景が赤になっていますので、『変換』ボタンを押す前に良く確認し、変換で上書きしたく場合はリストから除外して下さい。多数のファイルがリストにある場合には、リストをスクロールして確認することができます。

変換終了後、変換結果のログファイルを見るか、確認を求めるダイアログが開きます。ログファイルを確認する場合はNotepadが開きますので、必要に応じてログファイルを別名で保存する等の処理を行った後、Notepadを閉じて下さい。なお、ネットワークドライブに対してファイルの再帰的探索ができないことと、ログファイルに記録された変換開始と終了時刻が1時間ずれているという不具合が確認されています。

GPX2JSGIとは?

GPX2JSGI(GPX→JSGIコンバータ)は、カシミール3Dで作成してGPX形式で保存したGPSデータ(ウェイポイント、ルート、トラック)を、電子国土Webシステムが読み込んで地図上に表示できるJSGI形式(電子国土Webシステム用XML形式)に変換するソフトウェアです。Google EarthやGoogleマップで地図にオーバーレイできるKML形式への変換にも、フルに対応しています。

主な機能と特徴

動作環境

Windows XP/Vista/7で動作します。動作確認はWindows XP/Vista/7とカシミール3D Ver.8.9.0で行っています。

GPX2JSGIは、XSLTプロセッサとしてxsltproc、Tcl/Tkインタプリタとしてtclkitを用いています。トラックポイントの間引きにはGPSBabel、JSGI形式のネイティブ化にはXML2HTM、KMZ形式へのZIP圧縮にはInfo-ZIPを利用しています。付属ユーティリティのICONVIEWでは、ImageMagickのconvertコマンドを利用しています。これらの外部プログラムは、すぐに利用できる形で統合されて配布パッケージに含まれており、別途入手してインストールする必要はありません。

著作権について

GPX2JSGIのソフトウェアおよび付属文書の著作権は、作者のあにねこ(anineco@nifty.com)が保持します。本ソフトウェアは無償で提供され、複製を入手した人は商用・非商用を問わず自由に使用、複写、変更、結合、掲載、配布することができます。本ソフトウェアの複製または変更した物を掲載、配布する場合は、ソースコード中の著作権表示は削除できません。

GPX2JSGIの配布パッケージに同梱されている外部プログラムの著作権については、表1のリンク先を参照して下さい。

表1 GPX2JSGIの配布パッケージに同梱される外部プログラム
配布元 利用している配布ファイル ライセンス
tclkit tclkitsh-8.5.9-win32.upx.exe
tclkit-8.5.9-win32.upx.exe
sdx-20100310.kit
free
libxml libxslt-1.1.26.win32.zip
libxml2-2.7.7.win32.zip
MIT License
iconv iconv-1.9.2.win32.zip LGPL
zlib zlib-1.2.5.win32.zip free
GPSBabel GPSBabel-1.4.2-Setup.exe GPL
電子国土ポータル ネイティブ化ツール XML2HTM.zip (version 2.1.1) ※1
Info-ZIP zip300xn.zip BSD-like
ImageMagick ImageMagick-6.6.8-Q16-windows.zip free

※1「電子国土Webシステム利用規約」に依拠して、同梱しています。

免責事項

本ソフトウェアは無保証です。特に、変換結果のデータ形式の正当性・正確性については保証しません。作者は本ソフトウェアに起因するいかなる義務(サポートを含む)についても責任を負いません。

導入方法

インストール

GPX2JSGIのインストールは、ダウンロードのページから最新版の配布パッケージ gpx2jsgi-X.X.zip(X.Xはバージョン番号)をダウンロードして、適当なフォルダの下に展開するだけです。配布パッケージを展開すると、gpx2jsgiというフォルダ(以下、GPX2JSGIのアプリフォルダと呼びます)の元に、下記のファイルが配置されます。

gpx2jsgi.exe       … GPX→JSGIコンバータ実行形式ファイル。
iconview.exe       … シンボル画像作成・一覧実行形式ファイル。
gpx2jsgi.html      … マニュアル。この文書です。
example/*          … サンプルのGPXデータと、それを変換して得られたファイル。

gpx2jsgi.tcl       … gpx2jsgi.exeのソースファイル(Tcl/Tkスクリプト)。
iconview.tcl       … iconview.exeのソースファイル(Tcl/Tkスクリプト)。
mkexe.bat          … Tck/Tkスクリプトをラッピングして実行形式ファイルを作成するバッチファイル。

iconlut.xml        … アイコン変換表(GPX→JSGI)。
iconkml.xml        … アイコン変換表(GPX→KML)。
iconlut_common.xml … アイコン変換表(電子国土共通シンボル)。
iconlut.dtd        … iconlut.xml用DTD。
iconlut2html.xsl   … iconlut.xml閲覧用スタイルシート。
gpx2jsgi.xsl       … GPX→JSGI変換スタイルシート。
gpx2kml.xsl        … GPX→KML変換スタイルシート。
identity.xsl       … 汎用恒等変換スタイルシート(XML Hacks p.129 から転載)。
center.xsl         … 中心座標計算用スタイルシート。
filter1.xsl        … 軌跡データ間引き用スタイルシート。
filter2.xsl        …  〃
fixver.xsl         … GPX形式修正用スタイルシート。
bin/*              … 外部プログラムを格納したフォルダ。
css/*              … マニュアル用CSS。
js/*               … マニュアル用JavaScript。

バージョンアップ

Ver.1.2以前のGPX2JSGIでシンボル画像をカスタマイズしていた場合は、バージョンアップの前にアプリフォルダ内のiconlut.xmlのバックアップを作成してください。GPX2JSGIのバージョンアップは、旧バージョンのアプリフォルダをまるごと削除して、新バージョンのアプリフォルダで置き換えます。最後に、バックアップしたiconlut.xmlをGPX2JSGIのデータフォルダにコピーします。データフォルダの場所については、データフォルダの項を参照して下さい。

アンインストール

GPX2JSGIのアンインストールは、GPX2JSGIのアプリフォルダをまるごと削除して下さい。また、GPX2JSGIのデータフォルダも、不要であれば削除して差し支えありません。データフォルダの場所については、データフォルダの項を参照して下さい。

操作方法

起動

GPX2JSGIのアプリフォルダの中のgpx2jsgi.exe(青い羽根のアイコン)をクリックすると、GUIが起動して図1のような窓が開きます。ActiveTclがインストール済ならば、gpx2jsgi.tclをクリックしても全く同じ窓が開きます。両者は、Tcl/Tkのインタプリタが内蔵か、外部かが異なるだけで、機能・動作は全く同じです。

図1
図1 GUI画面

入出力ファイル指定

変換したいGPXファイル(1個以上)を、右側の『←追加』ボタンを押してファイル選択ダイアログを開き、「GPXファイル」のリストに追加します。ファイル選択ダイアログでは、ControlキーやShiftキーを押しながらクリックすることにより、複数ファイルを同時に選択することができます。リスト中のファイルをマウスで選択して『除外』ボタンを押すと、リストから取り除くことが出来ます。また、『クリア』ボタンを押すと、リストは空になります。

次に、「出力形式」をJSGI、KML、GPXの中から選択し、「出力ファイル」を右側の『選択』ボタンを押して指定します。出力ファイルの拡張子は、出力形式に対応してそれぞれ .xml、.kml、.gpx として下さい。拡張子を指定しなかった場合は、自動的に付加されます。

メタデータ設定

JSGIファイルに変換メタデータを付加する場合は、「メタデータを付加」欄にチェックを入れて下さい。すると、その下の各欄が図2のように編集可能になります。GPX2JSGIを初めて立ち上げたときは「提供者」以下は空欄になっているので、適宜記入して下さい。「メタデータを付加」欄がチェックされていない場合は、その下の項目は変換結果に書き込まれないので、入力は不要です。

各項目の意味は、次の通りです。図2に記入例があります。

記入したメタデータのうち、提供者、Email、URL、摘要は自動的に保存され、次にGPX2JSGIを起動したときに自動的に読み込まれます。

トラックポイント間引き設定

トラックポイントを間引く場合は、「軌跡を間引く」欄にチェックを入れて下さい。すると、その下の「許容誤差」のスピンボックスが編集可能になるので、正の数値(単位はkm)を設定します。間引きには、cross track errorアルゴリズムを用いたGPSBabelのSimplifyフィルタを利用しています。許容誤差を大きくすると間引かれる点数が増えますが、軌跡の細部の形状が失われるので、調節が必要です。最初は初期設定値(0.005km)で試してみて下さい。

図2
図2 変換準備完了後のGUI画面

変換実行

全ての必要項目を記入したのちに『変換』ボタンを押すと、変換結果が「出力ファイル」に指定したファイルに出力されます。変換が成功すると、図3に示すように、変換後のトラックポイント数と中心座標の計算結果(緯度、経度。単位は度)を表示します。中心座標は『コピー』ボタンを押すとクリップボードにコピーされ、他のアプリケーションにペーストすることができます。

図3
図3 変換実行後のGUI画面

JSGIファイルに変換後に『ネイティブ化』ボタンを押すと、引き続いてJSGIファイルをネイティブ化して圧縮し、拡張子を.htmに変えたファイル名で出力します。

!注意!ネイティブ化する際には、使用しているシンボル画像がURLでアクセスできることが必要です。

KMLファイルに変換後に『KML→KMZ』ボタン(出力形式でKMLを選択すると、『ネイティブ化』ボタンが『KML→KMZ』ボタンに変わります)を押すと、引き続いてKMZ形式に変換し、拡張子を.kmzに変えたファイル名で出力します。このファイルは、元のKMLファイルと使用しているシンボル画像でローカルにあるものを含んだZIPアーカイブです。

『終了』ボタンを押すと、プログラムを終了します。

変換仕様

本章で記述される変換仕様は、主としてJSGI形式への変換と電子国土Webシステムでの表示について述べ、KML形式への変換についてはを付して相違点のみを説明します。

ウェイポイント

カシミール3Dの「ウェイポイントのプロパティ」(図4)の設定項目が、電子国土Webシステムでどのように表示されるかを説明します。

図4
図4 ウェイポイントのプロパティ

KML形式への変換でも、JSGI形式と同様に、データフォルダのアイコン変換表(ファイル名は iconkml.xml)を参照して、コード番号を対応するシンボル画像のURLに変換します。初期設定では、JSGI形式と全く同じシンボル画像に変換します。

ルート

カシミール3Dの「ルートデータプロパティ」(図5)の設定項目が、電子国土Webシステムでどのように表示されるかを説明します。

図5
図5 ルートデータプロパティ

KML形式の場合、表示色は透過率50%で表示され、線種はすべて実線になります。

カシミール3Dでは、ルート上の各ポイントに対しても図4の「ウェイポイントのプロパティ」を開いて、全く同様のプロパティを設定することができます。GPX2JSGI Ver.1.2より、ルートポイントもウェイポイントと同様にJSGI形式に変換するように、仕様が変更されました。ただし、アイコンが「地名」グループの「なし」(コード番号903001)のルートポイントは例外で、変換されません(「なし」アイコンのウェイポイントは変換されます)。ルートポイントを変換したくない場合は、アイコンを「なし」に設定して下さい。複数のルートポイントを選択してから「ウェイポイントのプロパティ」を開くと、アイコンの一括変更が可能です。

トラック

カシミール3Dの「トラックデータプロパティ」(図6)の設定項目が、電子国土Webシステムでどのように表示されるかを説明します。

図6
図6 トラックデータプロパティ

メタデータ

メタデータの設定パラメータのうち、データセット名、提供者、摘要は、電子国土Webシステムの表示左下の『データ』アイコンをクリックした時にポップアップするデータ提供元一覧に表示されます。ただし、非プラグイン版の場合は、『データ』アイコンをクリックしてもポップアップしません。

技術情報

データフォルダ

Ver.1.2およびそれ以降のGPX2JSGIでは、実行時に参照するアイコン変換表やその他のデータを %APPDATA%\map.jpn.org\gpx2jsgi をパスとするフォルダに置きます。このフォルダを、GPX2JSGIのデータフォルダと呼びます。ここで、%APPDATA%はWindowsのApplication Dataフォルダを指す環境変数で、OSによって次のように定められています。

OS Application Dataフォルダ
Windows XP \Documents and Settings\<ユーザ名>\Application Data
Windows Vista/7 \Users\<ユーザ名>\AppData\Roaming

(参考:リソースの管理 - Windows 7 対応アプリケーションの互換性

Application Dataフォルダは隠しフォルダになっているので、通常はエクスプローラに表示されませんが、アドレスバーに%APPDATA%と入力すると開くことができます。

アイコン変換表

アイコン変換表は、カシミール3Dのアイコンのコード番号と、シンボル画像のURLの対応を定義します。GPX2JSGIが変換を実行する際には、データフォルダのiconlut.xmlがアイコン変換表として参照されます。GPX2JSGIを起動した際にこのファイルがない場合は、アプリフォルダから自動的にコピーされます。アイコン変換表を編集することにより、シンボル画像を自由にカスタマイズすることができます。

KML形式への変換の場合は、データフォルダのiconkml.xmlがアイコン変換表として参照されます。

下記は、アイコン変換表のファイル形式を説明するために、iconlut.xmlの冒頭の数行を抜粋したものです。丸数字は説明のために付したもので、実際のファイルには書かれていません。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="iconlut2html.xsl"?>
<!DOCTYPE iconlut SYSTEM "iconlut.dtd" [
<!ENTITY baseurl "http://map.jpn.org/icons/"> 
]>
<iconlut>
<icon code="901001" src="&baseurl;901001.png" size="24">ピン</icon> 
 :

行①は、baseurlという名前(実体名)の内容が、文字列http://map.jpn.org/icons/を示すことを宣言しています。行②は、コード番号901001に対応するシンボル画像のURLとサイズ(24x24画素)を定義しています。シンボル画像の位置の基準は画像の中央で固定です。&baseurl;を実体参照と言い、行①の宣言により実体名の内容に置き換えられるので、このコード番号に対応するシンボル画像のURLはhttp://map.jpn.org/icons/901001.pngとなります。

シンボル画像を替える場合は、シンボル画像のURLを使いたい画像ファイルのURLに書き替えます。シンボル画像を独自に作成する場合、透過色を白(RGB=255,255,255)に指定したPNG形式とすれば、プラグイン版、非プラグイン版どちらでも、またどのブラウザでも、透明部分を透明に表示できます。

電子国土共通シンボル

Ver.1.2より以前のGPX2JSGIと同様に電子国土共通シンボルを利用する場合は、アプリフォルダ内のiconlut_common.xmlを、ファイル名をiconlut.xmlに変えてデータフォルダにコピーして下さい。

付属ユーティリティ

ICONVIEWは、カシミール3Dでウェイポイントに設定可能なアイコンをシンボル画像(透過処理済PNG形式)に一括変換し、それ用のアイコン変換表を作成するユーティリティです。動作には、カシミール3Dがインストールされていることが必要です。

アプリフォルダの中のiconview.exe(青い羽根のアイコン)をクリックしてGUIを起動し、『画像作成』ボタンを押します。作成完了のメッセージを確認してから、引き続いて『一覧表示』ボタンを押します。ブラウザが起動し、作成したシンボル画像の一覧を表示します。『終了』ボタンでICONVIEWを終了します。

ICONVIEWを実行すると、シンボル画像セットがデータフォルダ内のiconsというフォルダに、アイコン変換表がデータフォルダのiconlut_local.xmlというファイルにそれぞれ出力されます。iconlut_local.xmlのファイル名をiconkml.xmlに変えて、KML形式用のアイコン変換表として用いると、KMLファイルと使用されるシンボル画像をすべて含んだ自立型パッケージのKMZファイルを作成することができます。

!注意!カシミール3Dに付随するデータの著作権は、作者のDAN杉本氏に属するものとされています(カシミール3Dマニュアルの24.著作権の章を参照)。ICONVIEWで作成したシンボル画像(カシミール3Dに付随するデータと看做される)は、地図系Web APIやGoogle Earth等を用いて表示されるルート地図の上への表示、および、それらに関連する凡例や説明のための表示に限って、かつ非商用で使用し、その他の用途や商用での使用、特に画像ファイルを単体で配布することはご遠慮下さい。

TODO

謝辞

カシミール3Dという素晴らしいソフトウェアを開発して、無償で提供頂いている作者のDAN杉本氏に感謝致します。また、tclkit、libxml、iconv、zlib、GPSBabel、Info-ZIP、ImageMagickという強力なオープンソフトウェアの開発者にも感謝です。本ソフトウェアが、カシミール3Dと電子国土Webシステムのさらなる活用のお役に立てば幸いです。

参考文献

各データ形式についての情報と、XSLT、Tck/Tkのプログラミングで大変役に立った書籍を挙げます。

更新履歴

2013-12-28 GPX2JSGI Ver.1.3 (地理院地図対応版)を公開。
(1) GPX形式から、地理院地図が読み込めるKML形式(KMLウェブ地図プロファイル)に変換。
(2) JSGI2KML(JSGI→KMLコンバータ)Ver.1.3をGPX2JSGI Ver.1.3に同梱
2011-03-28 GPX2JSGIの公式サイトをhttp://anineco.nyanta.jp/gpx2jsgi.htmlに移転して、全面的にリニューアル。
GPX2JSGI(GPX→JSGIコンバータ)Ver.1.2 を公開。
(1) インストールの簡易化
・必要な外部プログラム全てを配布パッケージに同梱。
・Tclスクリプトをtclkitを用いて実行形式にラッピング。ActiveTclのインストールも不要。
(2) アイコン変換機能の拡充
・カシミール3Dのアイコンに対応するシンボル画像をhttp://map.jpn.org/に設置。
・ルートポイントに設定したアイコンをシンボル画像に変換する機能を追加。
(3) KML形式への変換にフル対応
・JSGI形式と同様に、アイコンをシンボル画像に変換。
・KMZ形式への圧縮の際、必要なシンボル画像も含んだ自立型パッケージの作成が可能。
(4) GUIの改良
・GPXファイル選択ダイアログで、複数のファイルを同時に選択可。
・軌跡間引きの許容誤差の設定にスピンボックスを設置。
(5) その他
・設定ファイルや実行時の一時ファイルは、Application Data フォルダの配下に配置するように変更
・iconviewが生成するシンボル画像が、電子国土プラグイン版で透過しなかった問題を修正。
2010-10-23 GPX2JSGI Ver.1.1β 公開。
・カシミール3D Ver.8.8.5に対応。
2010-10-12 カシミール3D Ver.8.8.5 に関する注記を追加。
2010-08-04 GPX2JSGI Ver.1.0β 公開。
・GPSBabel-1.4.1に対応。
・外部プログラム(xsltproc,Info-ZIP)を同梱。
・トラックデータ間引きの許容誤差の初期値を2mから5mに変更。
・GI要素にXML Schema instance関連の属性を追加。
2009-04-26 GPX2JSGI Ver.1.0α 公開。
・GPSBabelを利用したトラックデータの間引き機能を追加。
・変換後のトラックデータの点数を表示する機能を追加。
2009-01-25 GPX2JSGI Ver.0.9α 公開。
・おまけ機能として、KML形式およびGPX形式に変換する機能を追加。
・KML形式に変換後、引き続いてKMZ形式に圧縮できる(要、Info-ZIP)。
・GPX形式に変換したものは、再びカシミール3Dで読み込める(マージ機能)。
・機能追加に対応して、GUIを変更。
2009-01-06 GPX2JSGI Ver.0.8α 公開。
・JSGI形式に変換後、中心座標を計算して表示する機能を追加。
・変換元のJSGIファイルの数の制限(最大3個)をなくした。これに対応して、ファイル選択のGUIを改善。
・プログラム終了時にメタデータの設定項目(提供者、Email、URL、摘要)を gpx2jsgi_init.txt に保存。
・カシミール3Dのシンボル画像を表示するツール(iconview)を同梱。
・xsltprocとXML2HTMのバイナリファイルは、すべてbinフォルダの下に置くように変更。
2008-12-13 GPX2JSGI Ver.0.7α 公開。
・JSGI形式に変換後、引き続いてネイティブ化する機能を追加。
・カシミール3Dの全てのアイコン画像に対応するように、iconlut.xmlを拡充。
2008-10-31 GPX2JSGI Ver.0.6α 公開。
・異なるシンボルなのに同じ画像で表示されるバグを修正。
・ウェイポイントの「GPSでの備考」の変換仕様を変更。
・ルートとトラックの線幅・線種の変換仕様を変更。
2008-10-09 TODOに追記。
・NDB2JSGIの開発。
・公開を検討中の「カシミール3Dフル対応シンボル画像」のスクリーンショットを掲載。
2008-08-18 GPX2JSGI Ver.0.5α 公開。
・電子国土Webシステム用XMLデータ仕様書第1.0版(平成20年4月15日更新)に対応。
・GI要素のexchangeMode属性を削除。
・点型データのCRS要素をposition要素の前に移動。
・線型データのCurve要素はcurve要素に変更(先頭小文字)。
2008-01-19 GPX2JSGI Ver.0.4α 公開。

TOP
© 2008-2013 Anineco