GARMIN用 JNX(BirdsEye)ファイル作成ツール ezjnxwinが便利

2017年7月23日

ガーミンジャパン(旧いいよねっと)の正規品GPS高いですよね。
そんなこんなで、並行輸入のeTrex 30を使用しているのですが、もちろん日本語地図が無いので、なんとかしないといけない。
というわけで、色々と便利なツールを作成している方々が居られますのでちょっと紹介してみようかと。
先ずはここ OpenStreetMap for GARMIN
ここでOpenStreetMapをベース用地図としてインストール。
日本語化についてもだいたいここから情報を仕入れて、あとは検索。
バックカントリースノーボードなども少々やっているので、等高線のある山地図が欲しいということで、GARMINではBirdsEyeというベースの地図にレイヤーで重ねられるファイル形式があるんですね。
こちら本来は有料のコンテンツとして供給されるのですが、パッチを当てることで利用できるようにすることができます。
こちらについては、winter optixさんのサイトを参考に、当初gsijnxという国土地理院データをJNX化するツールを用いてデータを作成していました。( http://optix.sppd.ne.jp/mt/archives/001231.html )
ただし、環境作成にちょっとクセがあり、インターフェースもちょっと敷居が高いかなという感じです。
だいたい行く場所は今までに作成済みでしたので特にアップデートもせずに放って置いたのですが、この度eTrex 30のファームアップのタイミングで、色々調べていたところ、徒然なるままに というブログ運営者の方がGARMIN GPS用のフリー(無料)地図作製ソフトウェアを作成されており、こまめに更新もしておられます。
こちらのソフトウェアの開発のきっかけとして、以下を引用します。

GARMIN GPS用のフリーの登山地図作製ツールでラスター地図からJNX形式で作成してくれる秀逸なフリーソフト(GPL)としてgsijnx と ymapjnx がある。それぞれ国土地理院とヤフー地図のweb service よりラスター画像を取得しJNX形式のBirdeyeファイルを作成する。1500stepほどのPythonというプログラミング言語で記述されている。
便利に使わせていただいていたが、国土地理院の旧v3?のサービスが停止されv4の新地図に切り替わった。v4のタイル指定は [web api の国際標準化]  で書いたがGoogle方式のディフェクトスタンダートに則っていて歓迎すべき事なのだが、v3の仕様で作成されたツールが動作しなくなる。
gsijnx はエラー吐いて動作不可。 ymapjnx は動かしてはいないが動作するだろう。
山仲間よりタイミング悪く冬山山行用に北ア・南アあたりの地図作製の依頼が有ったがgsijnxが使えない。Pythonのソースを眺めて改造を試みるも旧apiの画像仕様はピクセル数が異なる様でURLスキームを単純に変更した位では無理っぽい。仕方ないので自前でプログラムを突貫工事で作成する事にした。

出典: myslowdays.blogspot.jp


実際のところ、山地図として利用するなら地理院地図がベターだと考えているので、非常に有り難いツールです。
使用してみての感想としては、設定用のxmlファイルはデフォルトだと用途に合わない方もいると思うので、自分用にちょっと調整してみました。
以下のサイトを参考にしています。
ぱくうかん
グッジョブな日
リトルサウス’S ブログ
GMapTool
作成した自分用のezjnxconf.xmlのjnxタグ内は以下のようにしてみました。

<jnx>
  <map>
    <ProductName>Garmin Etrex30用</ProductName>
    <MapName>Garmin Etrex用</MapName>
    <Description></Description>
    <MapFileName>./ezjnxmap.jnx</MapFileName>
    <Layer Zoom="10" Scale="10" WebID="2">
      <Color Operate="True" Contrast="+10" Gamma="0.5" Bright="-5"/>
      <Compression Quality="75"/>
    </Layer>
    <Layer Zoom="12" Scale="13" WebID="4">
      <Color Operate="True" Contrast="+10" Gamma="0.5" Bright="0"/>
      <Compression Quality="75"/>
    </Layer>
    <Layer Zoom="14" Scale="16" WebID="4">
      <Color Operate="True" Contrast="+10" Gamma="0.6" Bright="0"/>
      <Compression Quality="75"/>
    </Layer>
    <Layer Zoom="15" Scale="18" WebID="1">
      <Color Operate="True" Contrast="+15" Gamma="0.6" Bright="0"/>
      <Compression Quality="50"/>
    </Layer>
    <Layer Zoom="16" Scale="19" WebID="1">
      <Color Operate="True" Contrast="+10" Gamma="0.5" Bright="0"/>
      <Compression Quality="30"/>
    </Layer>
  </Map>
</Jnx>

マップ作成時に気をつけるのは、以下の「NoMap(HTTP404)を無視する」を指定しておくこと。これをしてないと404のときにマップ作成時に止まってしまいます。(特にメッシュコードで指定するときに404になることがあるので)

NoMap(404)の場合の処理設定
オプション設定

あと、1次メッシュコードの範囲で作ると画像数が多すぎて取得エラーの恐れがあったり、大きすぎるJNXファイルの読み込みはGARMINのGPS機器側で失敗してしまうようですので、必要な山行の範囲で切り出して使うのが良いのではと思います。

あとこちらのソフトウェアの良いところとして、SQLiteのblobデータとしてキャッシュを残してくれるので再作成の時に便利ってところもよいのではと思います。AUTO VACUUMしてくれてるかは微妙なので、肥大化してそうだったらSQLite3でも落としてきて、VACUUMすると良いかも。