headAD

2016年6月13日月曜日

GARMIN製GPS用BirdsEye地図JNXファイル作成ツール

 GARMIN製GPSロガー用のBirdsEye JNXファイル形式の地図がある。以前には国土地理院地図やYahoo地図からJNXファイル形式に変換するツール(gsijnx, ymapjnx)があった。
それが使えなくなって暫くはosmをGARMIN用に変換して使ってはいたけれど、zoomレベルを大きくしていくと地図の位置とGPSのロケーションが微妙に異なっている。
国土地理院地図を使いたいと思っていたら、気球仲間のAさんから最近JNXファイルへの変換ツールezjnxwinがあると情報を得たので使ってみた。

'徒然なるままに'ブログ(poohさん)に掲載されているezjnxwin 0.3βである。
ダウンロードしてezjnxwin-v0.3beta-20160214.zipファイルを適当に解凍する。特にインストール作業はない。

ezjnxwin.exeが実行ファイルで、定義設定はezjnxconf.xmlファイルだ。
zoomレベルに応じて、国土地理院、yahoo、oamなどの地図が指定出来て、しかも取得したmap画像を補正できる点が秀逸である。
作者のpoohさんが添付しているそのままでもよいが、地域によってはzoomレベルが19までない場合もあるし(エラーで停止する)、好みの濃いさ加減がいまいちなので、自分用に手を入れてみる。
yahoo mapでは人がいないところなどは、平地でも’No map’で画像が取得できない場所もあり、私はすべてを国土地理院地図で指定した。また、GARMIN e-Trex30ではメリハリの効いた画が欲しかったので、gamma補正値を0.15にした。

 定義設定はezjnxconf.xmlファイルの<map>タグの箇所は次のようにした。
JNXファイルのレイヤ指定は5つまでで、zoomを指定する。WebIDはmapの種類(1:国土地理院地図)、gammaは今回0.15にしたが0.2~0.6位で小さい数値で線が濃くなるので調整するとよい。
contrast, brightは標準の’0’でいいだろう。Compression Qualityはjpeg変換時の圧縮比で数値が小さいほど圧縮度が高く画像が損ねるので、容量と画像のパフォーマンスで50%程度で良いと思う。
zoomレベル19や20は画像が用意されていないこともあって、19は取得できなかったので<!-- -->で囲ってコメント扱いにした。(消してもよかったが別な場面では使えるかもしれないので残しておく)
        <Map>
            <ProductName>JNX地図</ProductName>
            <MapName>JNX地図</MapName>
            <Description></Description>
            <MapFileName>./ezjnxmap.jnx</MapFileName>
            <Layer Zoom="14" Scale="14" WebID="1">
                <Color Operate="True" Contrast="+0" Gamma="0.15" Bright="0"/>
                <Compression Quality="50"/>
            </Layer>
            <Layer Zoom="15" Scale="15" WebID="1">
                <Color Operate="True" Contrast="+0" Gamma="0.15" Bright="0"/>
                <Compression Quality="50"/>
            </Layer>
            <Layer Zoom="16" Scale="16" WebID="1">
                <Color Operate="True" Contrast="+0" Gamma="0.15" Bright="0"/>
                <Compression Quality="50"/>
            </Layer>
            <Layer Zoom="17" Scale="17" WebID="1">
                <Color Operate="True"  Contrast="+0" Gamma="0.15" Bright="0"/>
                <Compression Quality="30"/>
            </Layer>
            <Layer Zoom="18" Scale="18" WebID="1">
                <Color Operate="True"  Contrast="+0" Gamma="0.15" Bright="0"/>
                <Compression Quality="30"/>
            </Layer>
<!--
            <Layer Zoom="19" Scale="19" WebID="1">
                <Color Operate="True"  Contrast="+10" Gamma="0.5" Bright="0"/>
                <Compression Quality="30"/>
            </Layer>
-->
        </Map>
準備ができたので、ezjnxwin.exe実行ファイルを起動する。
起動すると[初めに]タブが表示されて、アプリの免責事項等の説明やツール使用方法の説明があるので一読する。
次に[マップ作成]タブで作成する地図のロケーションを設定する。

3つの方法が用意されているが、今回は緯度経度で指定する。
LAT1,LON1で南西端、LAT2,LON2で東北端を指定する。
直接入力するか、[地理院地図]ボタンで地図を開いて指定することもできるが少し癖がある。[座標設定]ボタン押す前にLAT1かLAT2の入力BOXをクリックしないと値が入らない。
ロケーションの設定が出来たら、[計算]ボタンを押す。所定のレイヤー、zoom値、タイル数が表示される。
この後、[地図作成]ボタンを押すと、所定のmapタイルを取得してくれる。
作成中は勿論、webにアクセスするのでネットにつなぐ必要がある。
一度ダウンロードされるとDBに保存されるので、同じ箇所のタイルはDBを参照するので超高速である。定義設定を確定するまでに何回も試行錯誤したので、この部分も作者に感謝。

ちなみに、地図作成時に一度に大きいエリアを指定するとファイル容量も大きくなるので、必要なエリアだけを数回に分けて、JNXファイル名を変更しながら作成すると良い。
作成した複数のJNXファイルをGARMIN GPSにコピーしてしまえばOKである。

注意:GARMIN製GPSロガーは正規のBirdsEyeJNX地図しか使えません。そこでフリーのJNX地図を認識するようにロガーのファームウェアにパッチを当てる必要があります。
パッチを当てる記事はこちらを参照ください。