俺のやりかた:eTrexでJNX
2016/06/22 公開
2016/06/28 更新

※ 写真のPOIの日本語表示「白馬岳/SIROUMADAKE」の日本語部分は別途日本語表示が出来るようにしてないと表示されない
ハンディGPS eTrex30(英語版)を買って以来、これまでKMZ形式の地図を使っていた。
KMZ形式はタイルマップが100枚以下、山域ごとにファイル化しておいて複数を切り替えて使いたいと思っても出来ず、JNX形式のように複数の縮尺の地図を使ってズームレベルを設定できないなどいろいろ制限があって使い勝手がいいとは言えないものだった(しかも表示・移動がとても遅い)。
※ 同じズームレベルでも1枚のタイルマップの大きさを大きくすることで100枚の枚数制限の中で収容エリアを広くすることは出来る
買った当初から JNX 形式の地図が使いたいと思って辿り着いたツール gsijnx, ymapjnx だったが、自分には複雑すぎてやる気になれず放置していた。
それから4年、長い放置期間を経て久しぶりにやる気になって調べてみると、マップ側の仕様が変わってうまく動かないとかツールの配布サイトがなくなってるとか、、、OTL
出来ないとわかるとなんとかならないかと思うものでいろいろ探したところ自分にも出来そうなツールを遂に発見した。
2016/06/28 更新

※ 写真のPOIの日本語表示「白馬岳/SIROUMADAKE」の日本語部分は別途日本語表示が出来るようにしてないと表示されない
ハンディGPS eTrex30(英語版)を買って以来、これまでKMZ形式の地図を使っていた。
KMZ形式はタイルマップが100枚以下、山域ごとにファイル化しておいて複数を切り替えて使いたいと思っても出来ず、JNX形式のように複数の縮尺の地図を使ってズームレベルを設定できないなどいろいろ制限があって使い勝手がいいとは言えないものだった(しかも表示・移動がとても遅い)。
※ 同じズームレベルでも1枚のタイルマップの大きさを大きくすることで100枚の枚数制限の中で収容エリアを広くすることは出来る
買った当初から JNX 形式の地図が使いたいと思って辿り着いたツール gsijnx, ymapjnx だったが、自分には複雑すぎてやる気になれず放置していた。
それから4年、長い放置期間を経て久しぶりにやる気になって調べてみると、マップ側の仕様が変わってうまく動かないとかツールの配布サイトがなくなってるとか、、、OTL
出来ないとわかるとなんとかならないかと思うものでいろいろ探したところ自分にも出来そうなツールを遂に発見した。
◆ いきなり完成版
赤の左向き矢印からそれよりも拡大側の次の同じ印のひとつ手前のスケールまで同じ地図が表示され、この設定では120m以上拡大の時は120mスケールの地図が表示される。尚、このJNXファイルでは8kmより広域は設定していないので表示されない。

※ ハードコピーオリジナルはもっと彩度・明度・コントラストが高いが、実際のeTrex30の見え方に近いよう補正している
◆ はじめに
eTrex30英語版の細工としては本体表示の日本語化、POIの日本語化、JNX形式の地図利用などあるが、やりたいことと必要な仕込みがわかりにくいので整理してみる
必要な仕込み | jnx形式マップの利用 | ハンディGPSの日本語表示 | POIの日本語表示 |
---|---|---|---|
パッチ済みファームウェアの適用 | |||
日本語フォントファイルの設置 | |||
etrexの日本語ローカライズファイルの設置 |
・・言った割には大してややこしくないか。JNX形式の地図を使えるようにするための仕込みはパッチ済みファームウェアの適用のみ。
ちなみに今回の作業環境はWindows10 Pro
◆ パッチ済みファームウェアの仕込み
■ ファームウェアの入手
実機のファームウェアバージョンと同じかそれ以上のバージョンのファームウェアファイル(.gcd )を入手する。
※ 最新のファームウェアはここ↓から入手可能
ttp://whiter.brinkster.net/generated/LatestGarminFirmwares.html
※ 古いのが欲しい場合はここ↓から入手可能
ttp://www.gawisp.com/perry/agree.html
■ パッチ当てツール FirmwarePatcher の入手
※ パッチ当てツールはここ↓から入手出した
ttp://whiter.brinkster.net/FirmwarePatcher.html
■ パッチの適用
パッチ当てツール FirmwarePatcher.exe を起動(保証がなくなる等々の警告ダイアログが出る)。
パッチ適用したいファームウェアを画面へドラッグアンドドロップかBrowse...から指定で即パッチ適用される。

実機の現在のファームウェアより新しいバージョンでなければファームウェアが適用されないので、上のハードコピーではファームのリビジョンをあげている(上の場合4.30から0.01上げて4.31にしている)。
■ パッチ適用済みファームウェアの反映
パッチ適用済みファームウェアを本体に適用する。マスストレージモードに設定したeTrex30をPCに接続し、Garmin eTrex30のドライブ直下/Garmin/以下にパッチ適用済みファームウェアをコピーする。

上のハードコピーではファイル名をGUPDATE.GCDとしているが、拡張子が同じだったら適用されると思う(リビジョンを上げたくないので未確認)。

コピーが終わったらPCと切り離し、デバイスの電源を入れると勝手にファームウェアアップデートが行われる。
そしてバージョン確認、、、
Setup > About を見たところ表示されるバージョン自体は変わっていなかった。
◆ JNX形式地図の作成
JNX形式の地図作成に使用したツールはどんなのかというと、、、
- 複数の地図(地理院地図・Yahoo地図・OpenStreetMap)をソースとして利用可能
- 範囲指定方法として、緯度経度指定、地理院地図の1次メッシュ指定、2次メッシュ範囲指定の3つの方法で指定が出来て、さらに緯度経度指定では直接入力の他、地図上の任意の点をクリックで緯度経度の代入が可能
- 画像処理機能は事前に効果を確認して設定値を決定することが可能
- 取得したタイルマップはDBにキャッシュされ、やり直し時などで再取得不要
■ ツールの入手
ezjnxwin は作者の方のページ↓で公開されている。
ttp://myslowdays.blogspot.jp/p/gps_15.html
今回は 2016/06 時点の最新 Ver 0.3β を使用した。
■ ツールのインストール
ダウンロードしたファイルを解凍するだけ。
■ JNXマップの作成
とりあえず地図作成
地図レイヤーの数と種類、地図のズームレベル、eTrex30側での表示スケール、画像処理のパラメータなどを設定ファイル ezjnxconf.xml で変更できるようだが、とりあえず初期値のまま地図作成、、、
ezjnxwin.exe を起動する。
起動直後に表示される「初めに」はツールの使用方法などの記載もあるので最初によく読んで理解しておいた方がいいだろう。
地図の作成自体は「マップ作成」タブだけで出来る。
マップ作成タブでの操作は大雑把に言うと地図の範囲を最初に述べた3つの指定方法のいずれかで指定して > 「計算」 > 「地図作成」 のボタンを押すだけ。
ここでは地図範囲を経度緯度で指定することにする。
地図範囲の指定の仕方は「初めに」に詳しい説明があるが、1点補足を、、、
緯度経度指定で南西端・北東端を指定する際に直接入力してもいいが、「マップ」タブの「地理院地図」ボタンで表示される地図で指定した場所を代入してくれる機能がとても便利。座標の代入は、地図上で任意の場所をクリックするとその場所が地図表示エリアの中心に移動し「座標設定」ボタンでその座標が代入されるという操作になるが、座標を代入するのが南西端か北東端かはアプリに判断できないので、「座標設定」ボタン操作前に南西端又は北東端の緯度又は経度のテキストボックスを選択しておく必要がある。
「計算」を押すと、指定した範囲と ezjnxconf.xml の設定から各レイヤーの地図のズームレベル・タイル数などを計算し、結果が表に出力される。
そして「地図作成」
たったこれだけで複数の種類・ズームレベルを使ったJNX形式の地図が作れてしまう。
実行例。画面下の画左は元画像、右は画像処理後。プログレスバー左は処理中のレイヤー、右は全体の進捗。X1, Y1, X2, Y2 はズームレベルが一つ上がると倍になっているので各ズームレベルでのタイルの位置ではないだろうか。
処理が終わるとツールと同じフォルダに ezjnxmap.jnx ファイルが出来る。
後はこれをeTrex30の/Garmin/BirdsEye/ ディレクトリにコピーして完了。eTrex30を起動してSetup Map > Select Map で作成した地図を Enable にすれば表示される。
※ 地図ファイルはMicroSDに /Garmin/BirdsEye/ ディレクトリを作ってそこに置いても認識されるようだ
※ 同じJNX形式の地図でもMAPIDが違うとeTrex30の Select Map で別物として個別に有効無効を切り替えられるようだが、ezjnxwin で作成される地図はeTrex30にデモで入っている Demo.JNX と同じようで一括りに表示される。Demo.JNX がどんなエリアが入ってるのかは知らないが、気になるようならリネーム(もちろん拡張子側)すれば認識されないようなのでそれでいいだろうう、、、
参考 : Ver 03.β デフォルトの ezjnxmap.jnx で作成される地図
eTrex30のズームレベル | 地図の種類 | 地図のズームレベル |
---|---|---|
20km~ | - | - |
5km-12km | Yahoo地図(Normal) | 10 |
1.2km-3km | Yahoo地図(TopoGraphic) | 12 |
500m-800m | Yahoo地図(TopoGraphic) | 14 |
300m | 地理院地図 | 15 |
~200m | 地理院地図 | 16 |
出来たJNX形式の地図をeTrex30に入れるとKMZ形式に比べて随分早くなった地図表示やズームレベルで地図の種類が変わっていくのが新鮮で嬉しかったが、地図が切り替わるズームレベルを変更したいと思うところが出てきた。
そして↓ここで JNX のことを勉強
ttp://whiter.brinkster.net/en/JNX.shtml
JNX レベルと表示される最低スケール値には決まりがあって、例えばズームレベル120m の時に地図表示させるには地図のスケールが139(HEX)以上ないと表示されないようだ。
JNXレベルと表示される最低スケール値
GPSユニットのズームレベル | Lower visible JNX scale value(DEC) | Lower visible JNX scale value(HEX) | 800km | 2,083,334 | 0x1FCA06 | 500km | 1,302,084 | 0x13DE44 | 300km | 781,250 | 0xBEBC2 | 200km | 520,834 | 0x7F282 | 120km | 312,500 | 0x4C4B4 | 80km | 208,334 | 0x32DCE | 50km | 130,209 | 0x1FCA1 | 30km | 78,125 | 0x1312D | 20km | 52,084 | 0xCB74 | 12km | 31,250 | 0x7A12 | 8km | 20,834 | 0x5162 | 5km | 13,021 | 0x32DD | 3km | 7,813 | 0x1E85 | 2km | 5,209 | 0x1459 | 1.2km | 3,125 | 0xC35 | 800m | 2,084 | 0x824 | 500m | 1,303 | 0x517 | 300m | 782 | 0x30E | 200m | 521 | 0x209 | 120m | 313 | 0x139 | 80m | 209 | 0xD1 | 50m | 131 | 0x83 | 30m | 79 | 0x4F | 20m | 52 | 0x34 | 12m | 32 | 0x20 | 8m | 21 | 0x15 | 5m | 14 | 0xE |
---|
一方、以下は DigitalGlobe 社が提供するデータのズームレベルとスケール値の一覧で、これと同じデータが ezjnxconf.xml の LevelScale タグに記述されている。
DigitalGlobe 社によるズームレベルとスケール値
Zoom Lebel | Scale Value (DEC) |
Scale Value (HEX) |
0 | 156543033+ | 0x954A839 | 1 | 78271516+ | 0x4AA541C | 2 | 39135758 | 0x2552A0E | 3 | 19567879 | 0x12A9507 | 4 | 9783939+ | 0x954A83 | 5 | 4891969+ | 0x4AA541 | 6 | 2445984+ | 0x2552A0 | 7 | 1222992 | 0x12A950 | 8 | 611496 | 0x954A8 | 9 | 305748 | 0x4AA54 | 10 | 152874 | 0x2552A | 11 | 76437 | 0x12A95 | 12 | 38218+ | 0x954A | 13 | 19109 | 0x4AA5 | 14 | 9554+ | 0x2552 | 15 | 4777 | 0x12A9 | 16 | 2388+ | 0x954 | 17 | 1194 | 0x4AA | 18 | 597 | 0x255 | 19 | 298+ | 0x12A | 20 | 149 | 0x95 | 21 | 74+ | 0x4A |
---|
上の2つの正しい関係性は自分にはわからないが、ezjnxwin の中では ezjnxconf.xml の Scale の Value 値と「JNXレベルと表示される最低スケール値」の表の関係に合っていることはわかった。
自分は地理院地図のズームレベル16 の地図を ~120m で表示したかったが、デフォルト状態の Scale 19 はValue が 0x12A なので 120m のズームレベルで必要なスケール値 0x139 に足りず ~80m までしか表示されない。
こんなやり方が正しいのかわからないが
ezjnxconf.xml の LevelScale タグのところを
<Scale Zoom="19" Value="12A" />
↓
<Scale Zoom="19" Value="139" />
として、Map タグのところで<Layer Zoom="16" Scale="19" WebID="1">
として地図作成したら期待したとおりズームレベル16 の地図が ~120m で表示出来るようになった。
他にも同様のやりかたでズームレベルで表示される地図を変更したが、念のため POI から地図表示させズームレベルを変更しても位置ずれはないように思う。
ちなみに Scale Value はマップタイル1枚 256px x 256px の 1px が何mmに該当するか・・というものらしく、赤道上の円周を 256 で割ったものがズームレベル 0 の値(地球全体)で、その半分がレベル1、そのまた半分がレベル2・・なのだそうだ。
メッシュ指定の範囲設定
ezjnxwin の「マップ作成」タブで地図範囲をメッシュ指定する際に入れる値の話。
普通知ってて当たり前?自分は最初何を指定していいのかわからなかったが、わかればメッシュ単位で地図作成するのも管理上無駄がなくていいように思う。
値は国土地理院の↓基盤地図情報ダウンロードサービスで確認出来る。
ttp://fgd.gsi.go.jp/download/menu.php
上記ページで「基盤地図情報基本項目」クリック > 「地図から選択」で表示される地図を拡大していってこの枠の区切りで表示されるのが1次メッシュ。

もっと拡大していって↓エリアが分割されたこの状態が2次メッシュ。

見えにくいので部分的に拡大。
白地図だと自分がほしいエリアがよくわからないが、画面左下のボタンから地図の種類を変更して普通の地図を表示できる。


こうじゃないと自分は必要な地図のエリアを見つけられない、、、
ちなみに2次メッシュ単位で地図作成した自分のeTrex30の地図選択画面はこんな感じ
(表示されていないが100個近くJNX形式のマップファイルを入れている)。

以上、一気に快適な地図環境になった。
グッバイ KMZ 、もう2度と使うことはないだろう
関連記事
俺のやりかた・・シリーズ:eTrexで日本語POI
俺のやりかた:eTrexのボタンが・・・ ある時ぃ! ない時ぃ!(その後)
俺のやりかた:eTrexのボタンが・・・ ある時ぃ! ない時ぃ!
俺のやりかた:eTrexで日本語POI
俺のやりかた:一眼レフと山歩き(Captureを縦に付けたい)
俺のやりかた:丸鍋で炊飯
俺のやりかた:richwellの張り方(詳細編)
俺のやりかた:eTrexのボタンが・・・ ある時ぃ! ない時ぃ!
俺のやりかた:eTrexで日本語POI
俺のやりかた:一眼レフと山歩き(Captureを縦に付けたい)
俺のやりかた:丸鍋で炊飯
俺のやりかた:richwellの張り方(詳細編)