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地図を認識するようにロガーのファームウェアにパッチを当てる必要があります。
パッチを当てる記事はこちらを参照ください。

7 件のコメント:

  1. ちょっとの間にかなり突っ込んで実験したのですね。かなり使えるツールだと思います。
    スケールとズームの関係がまだよくわかりませんが、以下を基本に微調している最中です。

          




















    返信削除
  2. こんにちは
    >以下を基本に・・・
    コメント下部に空行がありますが、文字として表現できていません。もし修正が必要なら再度コメントください。差し替えなどいたします。

    返信削除
  3. 気球仲間のAです。
    大変失礼しました。なぜ文字化けになったかわかりません。
    再度送ってみます。
    まだ実験中なので、圧縮率は低くやってます。


























    念のため、この行を使って2バイト文字で閉めてみました。
    文字化けしますかね・・・

    返信削除
  4. やっぱり駄目ですね。
    TABを消してみます。
    プレビューで表示できなかったので、原因がわかりません。

    返信削除
  5. こんにちは、pooh@manate0223です。

    ツールの使用方法の解説、恐れ入ります。ありがとうございました。
    ゴミソフトなので誤ったデータを出力しないことだけを願うのみです。
    ワタシも無線や電子工作は好きなので当サイトの以前記事を読ませていただいた記憶があります。
    今後ともよろしくお願いいたします。

    Zoomとスケールですが、スケールはGARMINの..1.2K , 300m , 120m...の表示スケールに対応するものです。Zoomは地図の詳細度でezjnxwinにサンプルで記述している国土地理院のSTD(標準地図)ですのでSTD-1が最大で18までになります。詳細は以下に載っていますのでご参考まで。
    http://maps.gsi.go.jp/development/ichiran.html

    ●>Aさんへ
     blogにコメントいただいた方でしようか?
     bloggerのコメントはHTML特殊文字を書けないみたいです。
     "<" → "<"
     ">" → ">"
    "&" → "&" 
    等に書き直してポストすれば良いです。手で修正するのは面倒であれば以下の様なサイトで自動変換して結果を張り付ければうまくいくと思います。
    http://tech-unlimited.com/escape.html
    ただし、半角スペースやTABは詰めて表示されますので、レイアウトも表現したい場合は全角スペースを使用するといいと思います。試しにポストしてみます。
    <Jnx>
     <Map>
      <ProductName>サンプル地図</ProductName>
      <MapName>サンプル地図</MapName>
      <Description></Description>
       <Layer Zoom="16" Scale="18" WebID="1">
        <Color Operate="True" Contrast="+10" Gamma="0.5" Bright="0"/>
        <Compression Quality="30"/>
       </Layer>
      </Map>
    </Jnx>

    良い熱気球lifeを good job!

    返信削除
  6. Aです。

    >pooh@manate0223さん
    まさしく私でございます。非常に良いツールをありがとうございます。
    先日有りました、「第25回佐賀市長杯・第26回若葉杯新人戦」・「第33回熱気球日本選手権」にこのツールで作成した地図を持って行きました。実際は天気の都合で競技自体がキャンセルになり、デビューはできませんでした。
    今はズームレベルとスケールの組み合わせを変えて実験中です。

    そのXMLを貼り付けると文字化けというか、空白で表示されてしまいました。
    ご紹介いただいたページで変換して、貼り付けてみます。

    ありがとうございました。

    <Layer Zoom="14" Scale="15" WebID="2">
    <Color Operate="True" Contrast="+10" Gamma="0.5" Bright="-5"/>
    <Compression Quality="80"/>
    </Layer>

    <Layer Zoom="15" Scale="16" WebID="1">
    <Color Operate="True" Contrast="+10" Gamma="0.5" Bright="0"/>
    <Compression Quality="50"/>
    </Layer>

    <Layer Zoom="16" Scale="17" WebID="1">
    <Color Operate="True" Contrast="+0" Gamma="0.3" Bright="0"/>
    <Compression Quality="90"/>
    </Layer>

    <Layer Zoom="17" Scale="18" WebID="1">
    <Color Operate="True" Contrast="+0" Gamma="0.15" Bright="0"/>
    <Compression Quality="90"/>
    </Layer>

    <Layer Zoom="18" Scale="19" WebID="1">
    <Color Operate="True" Contrast="+0" Gamma="0.15" Bright="0"/>
    <Compression Quality="90"/>
    </Layer>


    >kiyosey さん
    なんか、こちらを伝言板のように使ってしまい申し訳ありません。


     

    返信削除
  7. 匿名のAさん。どうもです。
    いえいえ、にぎわってもらえばいいので全く構いません。
    また何か情報ありましたらよろしくお願いします。
    Google mapも選択肢に入れたいところです。

    返信削除