GARMIN MAP60CSx USA版用地図を作成
お詫び: 国土地理院の「数値地図25000(空間データ基盤)」サービスが終了したため、2008年6月14日現在ここに記載された方法は実行できません。自作地図を作る代わりの方法を探します。


  不要図削除: 2009年04月20日
  加筆修正: 2007年11月01日

T.構想
  GARMIN MAP60CSx + 1GB(USA版)を入手したので早速自作地図(自作マップ)作成に着手した。自分の構想としては、幹線道路主体のベース マップと林道、等高線の登山用地図の基本2層構造でいくつもりだ。ウェイポイントとルートは、山行のつどMapsource®で設定し、GPSへアップロードし山へ持っていくことにする。使用OSはWindows2000。
レイヤー 地図の種類 内 容
登山地図 幅3.0m未満の道路と50m等高線の地図。山行のつど、地域限定で作成し、GPSへアップロードして持っていく。
ベース マップ 国道、高速道路、有料道路、幅3.0m以上の幹線道路主体の広域地図でGPSに常備しておく。
GPS内臓のワールド マップ ROM領域にあるので消せないから、そのままにしておく。

U.ツールを準備

   下表のツール(ソフト)を用意する。
ツール(ソフト) バージョン 使い方
MapView25000
フリーソフト
0.81   
UNLHA32.DLL
フリーソフト
1.42.1.8   
GPSMapEdit
フリーソフト
1.0.36.0 ポーリッシュ フォーマット(PFM[*.mp])を合体/編集し、IMGファイル(*.mp)へ書き出すソフト。http://www.geopainting.com/en/からダウンロードし解凍する。それをフォルダーごと適当なフォルダーへ移して使う。
cGPSmapper.exe
フリー版
0093c GPSMapEditがマップソース互換地図(*.img)を書き出すのに使う重要なソフト。今回フリー版のバージョン0093cをダウンロードして使った。
MapSource® 有償 6.11.6 MapSourceとは、Windows®PCでGARMINの純正マップ(Mapsource)や自作の互換Mapの表示/アップロード/ダウンロードができるGPSインターフェース ソフトである。その上、PC上でウェイポイント、ルート、およびトラックの設定/アップ/ダウンロードができる。純正マップか、地図を表示できるGPSを購入すると付いてくる。
xImage.exe
フリーソフト
   GPSの画面コピー(スクリーン ショット)が取れるソフト。GARMINのサイトからダウンロードした「xImage_23.exe」をダブル クリックするとインストールできる。

V.数値地図をダウンロードしてマップソース互換自作地図へ変換
  1. 地図をロード
    MapView25000を起動し、国土地理院の "数値地図25000(空間データ基盤)の閲覧"からベクター地図をロードする。 

  2. POI設定
    POIとは”Points of Interest”でカシミールで言うところの「地名」データのことである。英語版用の自作地図を作るときは、当然英語の地名リストを用意し、マッピングしなければならない。自分で作るのが原則だが、幸いMapView25000には日本語の地名リストを英語に変換し、マッピングしてくれる機能が用意されている。足りない「地名」は、自作は避けて個人が作成したサイト上のデータを利用させていただき、時間節約を狙う。以下に私の手順を解説する。

    地名データ 設定方法
    郵便番号の住所データ ゆうびんホームページの住所の郵便番号のデータを日本語から英語に変換するプログラムが、MapView25000に同梱されているので、それを利用する。具体的要領は、同梱のヘルプ「地名コンバータ.html」を読む。
    @ 住所の郵便番号のデータから「全国一括」(KEN_ALL.LZH)をダウンロードする。
    A「地名コンバータ.exe」を実行して、@でダウンロードしたデータを指定する。出力はデフォルトの「地名データ.txt」のまま良い。「開始」ボタンを押すと変換開始。
    B 出来た「地名データ.txt」をMapView25000の「地図(M)」-「データ作成」-「英語の地名」に指定してOKボタンを押す。これでこいつは完了。
    国土地理院の数値地図情報 CD-ROM購入しか入手手段がない(2007/7/22)。MapView25000の「地図(M)」-「データ追加」-「国土数値情報」に指定してOKボタンを押す。私は地名が多すぎて画面が煩雑になるので、このデータは使わなかった。
    POI
    @ 山名
    A 駅名
    B 道の駅

    YOSHIKAWAさんのホームページから、次の地名データをダウンロードする。YOSHIKAWAさん始め、データをご提供いただいた方々に感謝。ndbデータを自作する方法は別のところで触れたい。
    @ yama16k-e.ndb : 全国の山、15760+峠、英字版
    A JR1-E.ndb : 全国JR在来線 駅名 英字版
    B Mitieki2004e.ndb : 全国 道の駅785ヶ所英語版(2004/12)

      ダウンロードしたファイルを、MapView25000の「地図(M)」-「データ追加」-「NDBファイル」で開く「ファイル選択画面」に指定してOKボタンを押して変換する。@が終わったらA、Bと順に追加していく。
     
      
    【ご注意】
    言語設定を英語にしてMapView25000からポーリッシュ フォーマット(PFM、*.mp)やIMGファイル(*.img)へ書き出す場合、MapView25000は上記POIファイル(*.ndb)のローマ字化された「名前」を読んでおりません。検証すると、「名前」ではなく「読み」の方を独自の変換ロジックでローマ字へ変換しているようですが、奇妙な変換結果が散見されます。ご自分でお試しあれ。その最たるものが白馬岳です。通常「siroumadake」だと思うのだが、何故か「siromadake」です。

    結論ですが、英語版用マップソース互換地図を作成する場合、地名リスト(*.ndb)の「読み」は「半角カタカナ」で作成しなければなりません。幸い、「yama16k-e.ndb」の「読み」は半角カタカナですので無駄にはなりませんが。せっかくローマ字化されたデータがあるのに生かされないとは、トホホ...です。

    地名は全てがマッピングされるわけではないが、正常完了なら駅名は必ず英語で表示されるはずだ。一応確認し次のステップへ進む。

  3. 等高線データの作成
    この作業は「登山用マップ」を作成する時 のみ行う。これを行うと「表示設定」やデータの「変換設定」ダイアログで等高線タブが現れる。

    ヒント:
    等高線マップを作成するときは、地域を限定しなければ道路だらけの煩雑なマップになるので、地図のダウンロードは、山行きエリアを含むできるだけ狭いエリアを、最小単位で行うべきだ。そこで注意すべきは、MapView25000で例えば高山市をダウンロードしても、北アルプス エリアを含んでいない。なぜなら、市町村合併前の情報に基づいているからだ。正しくは、丹生川村、清見村、荘川村、宮村、久々野町、朝日村、高根村、国府町、上宝村をダウンロードしなくてはならない。飛騨市も同様、旧古川町、旧河合村、旧宮川村、旧神岡町等をダウンロードしないと黒部五郎岳などは出てこない。立山、薬師岳エリアも大沢野町、大山町、八尾町、婦中町、山田村、細入村等をダウンロードしないとだめだ。その他のエリアも同様。合併情報は、インターネットで調べられる。

    メニューの「地図(M)」-「データ作成」-「等高線」をクリックすると等高線データ設定エリアを指定するボタンが現れる。

    「データの無い場所は選択しない」にチェックを入れ、「選択反転」をクリックすると、データのあるエリアが全部反転する。マウスを右クリックで個別選択も可能。OKボタンを押せば等高線が作成される。表示設定すれば、目視で確認できる。
     

  4. GARMINポーリッシュ フォ-マットへの書き出し
    いよいよポーリッシュ フォ-マット (*.mp)へ変換してみよう。メニューの「データ変換」から「数値地図25000→Polish Format(*.mp)」を選択すると、下のような設定ダイアログが開く。
     

    (1)「データを間引く」スライダーは、一番左が間引き量ゼロ。右へ行くほど間引き量が多くなりカクカクした曲線になるので、私はほとんど間引きゼロに設定している。
    (2)「変換設定」を設定する。
    (3)出来上がったポーリッシュ フォ-マット (*.mp)を保存するフォルダーを参照ボタンを押して指定する。
    (4)OKボタンを押す。先述の「3.等高線データの作成」のところと同じエリア選択画面が開くので、変換エリアを反転させる。「データの無い場所は選択しない」にチェックを入れて「OK」ボタンを押す。 変換作業が始まる。
     

    (5)ポーリッシュ フォ-マット(*.mp)なので短時間で変換完了する。変換が完了すると、MapView25000上のマス目の数に相当するポーリッシュ ファイルがフォルダー内にできているのが確認できるはずだ。上の例なら4つ。

  5. GPSMapEditでポーリッシュ フォ-マットからMapsource互換地図(*.img)へ変換

    (1)地図の合成
      デフォルトでフォルダー「MapView25000」の下にサブ フォルダー「MapData」があって、そこに今回なら次の4つのポーリッシュ フォ-マットができているはずだ。

    @5438.mp A5439.mp, B5338.mp, C5339.mp

    そこで、GPSMapEdit (mapedit.exe)を起動する。「File」-「Add」をクリックし「ファイルを開く」ダイアログから最初のポーリッシュ ファイル(例えば、一番上の5338.mp)を選択し「開く」ボタンをクリックする。
     

    そうすると、直ちに該当するエリアのマップが表示される(下)。
     

    続けて残り3ファイルを同様の手順で追加していく。と、4つのマップが合体したマップ(サンプルは埼玉県)が完成する。ここで上級者ならポーリッシュ ファイルをテキスト エディータで開いて、個別の線なり、地名(これらをオブジェクトと呼ぶ)等を編集するのだろうが、今回はいっさいそういう方法には触れない。

    Add

    (2)マップ プロパティの設定を行う。
    これを間違うと、自作マップがGPSで表示されないだけでなく、MapSourceへの登録が出来ない事態になるので注意が必要。マップ プロパティは、ポーリッシュ ファイルをテキスト エディータで直接編集することで変更可能だが(上級者編)、今回は一切その方法には触れずGUIからできる方法に限定する。

    メニューの「File」-「Map Propathies」をクリックして「プロパティ設定ダイアログ」を開く。
    設定タブ 設定項目 & 設定方法
    Add

    変更する個所のみ記載する。当然だが英語版なので全て1バイト英数字で入力のこと。

    ID: 他のマップと重複しない8桁のコード。ダブル(重複する)とGPSおよびMapSourceで認識されなくなる。

    Name: GPSおよびMapSourceで、マップ名として表示されるのでわかりやすいのが良い。

    Elevation units: 標高の単位。当然Meter (メーター)を指定。

    Code pages:ソフトの使用する文字コード。「Japanease Shift JIS」を指定。

    Coding schema: Europeasn {single-byte}を指定する。「American {7bits}」や「Far East {Multi byte}」だと何故か国道番号が表示されない。

    他のプロパティはデフォルトのままにしておく。

    Add

    Levels、GPS zoom、MapSource zoomは、互換地図作成の要だが、ここでは詳細に触れない。

    私はデフォルトの設定を左の設定のように変更している。「Change」ボタンを押すと変更ができる。使い込むと変るかもしれないが当面はこの設定でいく。

    注意すべきは、Levelは昇順、Bits(ハードウェア ズーム レベル)は降順、GPS zoomとMapSource zoomは昇順。このルールに従わないと「img変換時」エラーになる。

     

    (MapView25000に同梱の「Map.dat」をエディータで書き換えると毎回の変更が不要になるが、ここでは触れない。つまりデフォルトの設定はMap.datへ行う。)

    Add

    Save objects as:ボデー部の記述方式の選択。@ [RGNx0]は古い記述形式で多くのツールと互換性がある。A [POI], [POLYGON,] & [POLYLINE]形式がcGPSMapper.exe v074からの新しい記述形式。当面は、どちらでもOKか。

    RGN limit:: 最大1024なので最初から1024にした方が良い。性能に影響ないとマニュアルには書かれている。

    Map is transparent: 多層地図で透過地図にする場合は、チェックを入れる。私は、ベースマップは「非透過」に、上に被せる等高線マップは「透過」にチェックを入れている。

    他のプロパティは、デフォルトのままにした。


    他の「タブ」のプロパティは、変更せずデフォルトのまま「OK」ボタンを押し、設定を終了する。

    (3)メニューの「Files」-「Save map」、又はツールバーの「保存」ボタンでいったん「ポーリッシュ フォ-マット」として上書き保存する。

    Note:
    変更した場合は、必ずポーリッシュ フォ-マットとしていったん保存しないと、互換地図(*.img)へ変換(コンパイル)できない。

    (4)MapSource互換地図(*.img)へ変換
    メニューの「Files」-「Export」-「Garmin IMG/cgpsmapper.exe」をクリックする。他の地図と重複しない(ユニーク)な8桁の名前を付けて保存する。

    Note:
    自作マップをMapSource®に登録するには、半角(1バイト)8桁(8文字)の名前が必須条件(例: 81005338.img)である。

    export

    cgpsmapper.exeへのpathを指定し、「Run」ボタンを押す。直ちに変換が始まる。
    export

    変換経過が表示される(下)。規模にもよるが、埼玉県全県で約1時間、かなり時間のかかる作業となることを覚悟する。
    export

    次のメッセージが出ると変換完了。
    export

    (5)出来たGARMIN IMGファイルを「GPSMapEdit」で確認してみよう。等高線地図ならこんなかんじ。残念ながら、データが無いので50mメッシュしか描けない。黒い実線が登山道ないし林道の幅5.5m以下の道路。
    export

    この地図の作成に当たっては、国土地理院長の承認を得て、
    同院発行の数値地図25000(空間データ基盤)を
    使用したものである。(承認番号 平19総使、第261号)

W.MapSource®へ登録


  最初に断るが、自作マップを使いこなすのに「MapSource」は必ずしも必要ない。代わりに、sendmapとカシミール3Dがあれば十分なので、興味が無い人はこのセクション読み飛ばすこと。

  1. MapSourceの構成
    MapSourceを使うためには、次の4つのファイルを用意し、Windowsのレジストリーへ登録する必要がある。幸い、A、B、Cはcgpsmapper.exeが作成してくれるので、ユーザーはレジストリ登録スクリプト(*.reg)を実行するだけとなる。但し、ことはそう簡単ではなく、これ以外に2つほど別のファイル内容を、Windowsに付属の「メモ帳」又は愛用のテキスト エディータで直接書き換える必要が出てくる。それは「test_pv.txt」と「RunTest.bat」だが、詳細は後述する。

    ファイル 拡張子 内容
    @上で出来た自作MapSource互換地図(Detailed map) *.img 既に、前項で作成済みの詳細地図のこと。但しこの章では、「Japan」と名づけた広域地図(関東、長野、山梨、新潟、富山)を使用した。(約4MB)
    Aプレビュー マップ(Preview map) *.img 広範囲が見渡せる概略地図
    Bマップ データベース ファイル *.TDB マップ情報を記載したファイル
    Cレジストリー登録スクリプト ファイル *.reg レジストリを直接編集しなくても、実行するだけで登録してくれるバッチ ファイルのようなもの。

  2. プレビュー マップ作成準備
    (1)cGPSmapper.exe/Ver 0093cフルパック版(cgpsmapperFree.zip)をダウンロードし解凍すると、「Test_Map」というサブ フォルダーができるので、そのなかにある「test_pv.txt」と「RunTest.bat」を探し出し編集する。
    @test_pv.txt cGPSmapper.exeがプレビュー マップを書き出すための設定ファイル
    ARunTest.bat cGPSmapper.exeはコマンド ラインベースの実行ソフトだが、不慣れな人には操作が厄介だ。それをバッチ ファイルの形で実行できるようにしてある。

  3. test_pv.txtの編集
    test_pv.txtをテキスト エディータで開いてみる(メモ帳でも良い)。コメントアウトされている行を除くと下のようになる。コメントアウトとは、先頭に「;」がつけられた注釈行で実行されない。
    PM変換
    2行目: cgpsmapperが書き出すファイルの名前になるので任意の名前を付ける。この例ではMyJapanとしたので、
    MyJapan.img
    MyJapan.reg
    MyJapan.TDB、と3つのファイルが書き出される。 

    3行目: MapVersionは、100から999の間の数字が推奨されている。MapSourceの「Help」-「About MapSource」をクリックすると開くダイアログの「Map Info.」ボタンをクリックすると、「100」と書いた場合「バージョン1.00」と表示される。大して重要ではない。

    4行目: ProductCodeは、40以上で他のMapと絶対重複しないことが求められる。というのはMapSourceの製品がこのCodeをレジストリーに製品(Map)識別コードとして書き込んでいるからだ。但し、自作マップをレジストリに登録する時、このコードを使っていなければ、問題ない。私は、数字ではなく文字を書き込んでいる(例: Saitama)。重複しているかどうかは、レジストリのHKEY_LOCAL_MACHINE\Software\Garmin\MapSource\Productsの次を見れば良い。詳しくは後で実例を載せる。

    7行目〜12行目: この設定は、詳細地図の設定と密接な関係がある。整合性をつけないとエラーになり、プレビュー ファイルの作成が出来なくなったり、MapSourceで表示されない等の不具合が発生する。

    7行目の「Levels=2」はそのまま。8、9行目のLevel0、1の等式(=)の右側の数字は、詳細地図のハードウェア スーム レベル番号の最後の数字にあわせて降順で番号を振る。但し、12までで11以下は無い。詳細地図の設定は上の方に書いたが、下の絵の通りである。この辺のことは、cgpsmapper.exeのマニュアル(英文)に詳しい。

    変換
    cgpsmapper.exeの約束事で最後の行、「Level3=15」は出力されないので、プレビューの方は「15」から降順となる(推奨)。その下は1つ少ないレベルが推奨されているので結果、「Level0=15」、「Level1=14」とした。
    次の「Zoom0」、「Zoom1」は、詳細地図が「Level3」で終わっているので、それに続けて「4」「5」、つまり「Zoom0=4」、「Zoom1=5」と昇順にした。この辺(レベルとズーム)の詳細は、別の項にしたい。


    14行目: MapsourceNameは、MapSourceを開いた時(正しくレジストリに登録されておれば)、「Select a product」欄に表示される名前(下の絵)。

    15行目: MapSetNameは、Mapを選択表示したとき「Maps」タブの「Area」欄に表示される名前。ちなみに「Maps」タブの「Name」欄に表示されるのはGPSMapEditの「Map Properties」-「Header」タブの「Name」欄で指定したMap名。

    16行目: CDSetNameは、MapSourceの「Help」-「About MapSource」をクリックすると開くダイアログの「Map Info.」ボタンをクリックすると製品情報として表示される。重要ではない。
    MapSource → 変換

    27行目〜: 重要。プレビュー ファイルを作成する元になる詳細地図(*.img)を、必ず8文字で指定する。実在しなければエラーになる。例:81005236.imgはOK、5236.imgはダメ。8文字を越えてもダメ。当然使えるのは、半角英数字のみ。(ヒント: 複数のIMGファイルを指定すると、合体した形でMapSourceに表示が可能。例: 関東と東北と北海道を個別に作って1つのプレビュー ファイルを作成するとMapSource上で「北部日本地図」として表示可能。)

  4. バッチファイル(RunTest.bat)編集

    コマンドラインから直接実行できるが、不慣れな人はこちらの方が無難。まず、このバッチ ファイルをメモ帳か愛用のテキスト エディータで開く。最初は下のようになっている。
    --------------------------------------------
    echo off
    ;.\..\cgpsmapper ac test_img.mp
    ;.\..\cgpsmapper pv test_pv.txt
    pause
    --------------------------------------------

    @詳細地図(8文字+".img")、ARunTest.bat、Btest_pv.txt、この3つのファイルは同じフォルダーに置く。それを前提に、cgpsmapper.exeへのフルパスを指定する。私の環境ならこう(下)。すでに詳細地図はできているので、2行目は不要だ。

    ------------------------------------------------------
    echo off
    "E:\Program Files\cGPSmapper\cgpsmapper" pv test_pv.txt
    pause
    ------------------------------------------------------
    書き換えたら上書き保存する。

  5. バッチファイル(RunTest.bat)実行
    「RunTest.bat」をダブル クリックすると実行だ。比較的短時間で終了する。私のこの例なら、
    MyJapan.img
    MyJapan.reg
    MyJapan.TDB、と3つのファイルができている事を確認する。

  6. レジストリ登録スクリプトの編集

    これもWindowsなら「スタート」-「ファイル名を指定して実行(R)」で「Regedit」とコマンドを入れれば、レジストリが開いて直接編集できるが、誰もが必ず警告するように、誤るとOSやアプリケーションが立ち上がらなくなるなどの重大な事態を招くので、このスクリプトを修正して実行する方を推奨する。少しは安全だと思う。

    まず、スクリプトの雛型(私の例なら「MyJapan.reg」)を開く。しつこいがファイルの名前はご自分が指定した「FileName+".reg"」である。

    雛形なので、最初は必ず下のようになっているはずだ。

    ------------------------------------------------------------------------
    REGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\MapSource\Products\MyJapan ]
    "LOC"="C:\\myMaps\\imgs\\"
    "BMAP"="C:\\myMaps\\Testmap.img"
    "TDB"="C:\\myMaps\\Testmap.tdb"
    ------------------------------------------------------------------------

    2行目の「....\Products\MyJapan]」のところだけは「test_pv.txt」の「FileName」で指定した名前になっているが、それ以外は雛型のままなのでご自分の環境に合わせて書き換えが必要だ。ちなみに、"LOC"は詳細地図のあるフォルダーのフルパス、"BMAP"はプレビューMap名とそのフルパス、"TDB"は、データベース名とそのフルパス。私の環境なら次のようになる。区切り符号の「\」は重ね打ちにします。また、LOCの最後の「\\」は不要だと思う
    ------------------------------------------------------------------------
    REGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\MapSource\Products\MyJapan ]
    "LOC"="E:\\Program Files\\MapView25000\\MyMap\\0-japan"
    "BMAP"="E:\\Program Files\\MapView25000\\MyMap\\0-japan\\MyJapan.img"
    "TDB"="E:\\Program Files\\MapView25000\\MyMap\\0-japan\\MyJapan.tdb"
    ------------------------------------------------------------------------

    間違いが無いか確認したら「MyJapan.reg」を上書き保存する。

  7. レジストリ登録実行
    「MyJapan.reg」をダブルクリックして実行してみよう。『....の情報をレジストリへ追加しますか?』と聞いてくるので「はい(Y)」をクリックする。すると即座に『....の情報がレジストリに正しく入力されました。』と返るので「はい」をクリックする。これで完了。正しく追加されていないと、MapSourceを開くときエラーになるはずだ。わかる人は、レジストリを開いて確認すると良い。エラーの原因は、フォルダー(ディレクトリー)の指定に誤りがあるか、実在しないファイルを指定している可能性がある。また、ファイルを削除したのに、レジストリを残しておくとやはりMapSourceを開く時エラーになる。レジストリの内容をサンプルに掲載する。

    レジストリ


  8. MapSourceを開いてみよう
    MapSourceを開くと上の「3.test_pv.txtの編集」で掲載したGUIスクリーンが開く。MapsourceNameで指定した名前が上のダイアログに表示されていればOK。MapSourceの操作解説はマニュアルに譲るが、ウェイポイントを追加して自作Mapと共にGPSへ送信してみる。

    GPSのメニュー「Setup Map」で見ると次のようになる。「Japan」と「Sukaisan」はGPSMapEditの「Map Properties」-「Name」で指定したマップ名、「Zenkoku」と「Tokosen」は「test_pv.txt」の「MapSetName」に指定したエリア区分名、「Jul 2007」はGPSへアップロードした時期を表す。チェックを外すとマップは非表示となる。

      
    自作のベースマップ「Japan」(左)と、等高線用マップ(右)をGPSでチェックを入れる。


    マップ表示へ切り替えてGPSでズーム インすると、「内臓のワールドマップ」→「広域地図(Japan)」→「群馬皇海山の登高線図と登山道」が順次表示され、感激ものだった。

          
    一番左が内臓のワールド マップ、ズーム インすると自作マップに切り替わる。
          
    一番右の1枚は登山用に作った等高線マップ。群馬百名山の皇海山周辺、群馬県側は等高線無し。左上の内臓マップから右下の等高線マップまでシームレスに表示可能。

    「山」や「旗」のシンボルは、MapSourceで登録したウェイポイントで、GPSの「FIND」機能で検索可能なので、実用上便利。(完)
    以上でこの項完、誤り等あれば個人の備忘録とお許しを願いたい。できればご指摘のメールを歓迎致します。 


©2006 Yamaさんのもっと山を、スキーを、感動を!
All rights is reserved. Sorry for Japanese only.