国土地理院 数値地図25000(空間データ基盤)からGarmin用の地図を作る

国土地理院では,数値地図25000(空間データ基盤)を一般公開しており,ここから入手できます.このデータと様々な公開ソフトを利用して,お金をかけずに(多少の手間は掛かります:−),Garmin eTrex Vistaなどに使える地図を作成する方法を紹介します.


重要

このページを参考にして行われる行為,ならびに,行為の結果もたらされる成果物(ソフトウェア,データ,地図などを含む)やその利用により何らかの損害が発生しても,このページの著述者並びに著述者の所属機関は,一切の責任や義務を負いません.

ここで紹介されているプログラム,データ等の利用にあたっては,それぞれに対する権利所有者に対する権利等の保護の義務・責任は,プログラムやデータ等を利用する者が負い,このページの著述者や著述者の所属機関は一切の責任,義務を負いません.

このページは特定の組織や商品,サービスの宣伝や告知,あるいは,それらを批評することを意図,目的とするものではありません.


用意するもの


手順(愛媛県全域の地図作製を例に)

  1. 数値地図のダウンロード
    すでに紹介したように,ここから「数値地図25000(空間データ基盤)」のデータをダウンロードします.
    市町村や区を単位として,それぞれLZH形式にまとめられています.
    例えば,愛媛県松山市ですと.「38201.lzh」といった名前のファイルとなっています.
    なお,空間地図2500の方も同じ名前のファイルとなっていますが,全く別物ですから,注意してください.
    ダウンロードしたファイルは,一つのフォルダに入れておいてください.ここでは,このフォルダを「c:\ehime」と仮定して説明を進めます.

    TIPS:
    愛媛県ですと全ての市町村のデータを入手するには70個のファイルをダウンロードする必要があります.
    従って,HP一括ダウンロードソフトを使うのが便利です.そのときには,数値地図2500のファイルもダウンロードすることになりますが 「http://mapbrowse.gsi.go.jp/dmap/sdf/ehime.htm」 以下のファイル全てをダウンロードで指定すると楽です.
    また,HP一括ダウンロードソフトの中には,初期設定では「LZH形式ファイルはダウンロードしない」ようになっているものもありますから,設定の確認・変更を行いましょう.

  2. 数値地図の解凍
    ダウンロードしたLZH形式の数値地図ファイルを解凍します.
    解凍先は「c:\ehime」にします.

    TIPS:
    愛媛県の全てのファイル70個の解凍となるとうんざりしそうですが,例えば,Archive-Rなどですと,複数のファイルをまとめてドラッグ&ドロップで解凍できますから,キーボード入力は必要ありません.
    ただし,Archive-Rでは,あまり多くのファイルを一度にドラッグ&ドロップすると,拒否されてしまいます.拒否されたら,一度にドラッグするファイル数を減らして見ましょう.

  3. 数値地図データの移動
    国土地理院からダウンロードしたLZH形式ファイルを解凍すると,元ファイルごとに1つのフォルダが作られます.
    例えば,松山市のデータである「38201.lzh」を解凍すると,「c:\ehime」の下に「38201」という名前のフォルダが作られ,その中に,実際のデータファイルが保管されています.
    このままですと,今後の作業がやりにくいので,全てのデータファイルを一つのフォルダに移します.
    ファイルの移動は,「エクスプローラ」でドラッグ&ドロップでも可能ですが,これが結構面倒なので,バッチファイルを作り,それを実行した方が楽です.
    バッチファイルの作成手順については,こちらを参考にしてください.

  4. mif/mid形式への変換(その1)
    map25K_VEC.exeを使用して,変換を行います.
    ここから,map25K_VEC.zipをダウンロードし,zipファイルを解凍して,map25K_VEC.exeを取り出します.
    zipファイルの解凍には,解凍ツールが必要ですので,Vectorなどから適当な解凍用ソフトをダウンロードして利用してください.(私は,Archive Toolを気に入ってますが,特に理由はないです.)
    map25K_VEC.exeは変換対象となるデータファイルと同じフォルダ,つまり「c:\ehime」に置きます.
    さて,ここからが少し大変です.まず,map25K_VEC.exeをクリックします.すると,ウインドウが一つ開き,
    「処理ファイル 例) 04210 ?」
    といった表示が出ますので,ここで,変換対象となるファイルの番号を入力します.
    例えば,松山市ですと「38201」となります.
    この動作を全てのデータファイルに対して行わなければなりません.つまり,愛媛県ですと,なんど70回も!やらないといけません.
    (このことについて,map25K_VEC.exeの作者の渡辺さんに対して,決してクレームをつけてはいけません.私も同じですが,何も商売をされているわけではなく,「自らの為に作ったソフトでも,他の人の為にもなるのなら」と公開されているだけですから)

    変換によって得られるmif/midファイルに含まれる情報については,map25K_VEC.exeのHPに紹介されているように,
     *****CM 地名ポイント(属性値に地名を持ちます)
     *****GK 行政界ライン(MapInfoでは赤色ライン)
     *****DK 道路ライン(MapInfoでは黒色ライン,属性値に道路名称)
     *****KK 河川ライン(MapInfoでは水色ライン,属性値に河川名称)
     *****SK 水際ライン(MapInfoでは青色ライン)
     *****TK 鉄道ライン(MapInfoでは黒色太ライン,属性値に鉄道路線名称)
     *****HM 標高ポイント(2秒メッシュ標高値)
    となります.
    この中で,最終的な地図のファイルの大きさなどを考えて,ここでは,DK,KK,SK,TKの4種のみを利用することにします.
    (すみません,実は,この4つ以外では試してません)

  5. mif/mid形式への変換(その2)
    map25K_VEC.exeで作成されたmif/mid形式のファイルは,そのままでは,GPSTrackMakerで読み込むことができません.
    mif/mid形式の規格にはまったく明るくないのですが,map25K_VEC.exeがはき出すmifファイルの以下の2点が理由のようです.
    1.「Pline 120」の様に,おおむね90程度以上の点を結ぶ線を,GPSTrackMakerが扱えない.
    2.「132.706506 33.849003」の様に座標点を表す行の先頭にスペースが入っていると,GPSTrackMakerが扱えない.

    そこで,この問題を解決するために,Translate.classを使用ます.
    このTranslate.classはJavaのクラスファイル(Java言語で書かれたプログラム)なので,実行にはJavaのVM(Virtual Machine)が必要です.
    JavaのVMのインストールについては,ここここ参考にしてください.(注意:Javaのインストール時に環境変数pathの設定も忘れないように!)

    まずは,Translate.classを変換対象となるmif/midファイルと同じフォルダ,つまり「c:\ehime」に置きます.
    次いで,利用したいデータを含むmif/midファイルの変換を行うわけですが,例えば,松山市の道路の情報を利用したいのであれば,「38201DK.mif」と「38201DK.mid」が変換対象ファイルとなります.
    変換は「java Translate 38201DK」とすることで行え,変換を行った結果として,「new38201DK.mif」と「new38201DK.mid」の2つのファイルが作られます.
    これを全てのDKファイル,KKファイル,SKファイル,TKファイルに対して行います.

    TIPS:
    対象ファイル全ての変換については,バッチファイルを作成し,一括して行った方が楽です.その手順は,こちらを参考にしてください.

  6. 変換済みmif/midファイルの整理
    次の作業に備えて,DK,KK,SK,TKの変換済みのmif/midファイルを,タイプ毎に異なるフォルダにまとめます.
    まず,「コマンドプロンプト」を起動します. コマンドプロンプトは,「スタート」メニューの「プログラム」−「アクセサリ」の中にあります.
    「コマンドプロンプト」が開いたら,「cd c:\ehime」と入力して,フォルダ「c:\ehime」に移動します.
    次に,コマンドプロンプトで,「mkdir DK」と実行することで,フォルダ「c:\ehime」の中にフォルダ「DK」が作成されます.
    同様に,「KK」,「SK」,「TK」も作成します.(フォルダの作成は,エクスプローラでもできますね.)
    次に,コマンドプロンプトで,「copy new*DK.* DK」とすることで,DKの変換済みmif/midファイルのコピーが「DK」フォルダに作られます.(「move」での移動でも結構です.)
    同様に「KK」,「SK」,「TK」の変換済みmif/midファイルも,それぞれのフォルダにコピーを作ります.

  7. plt(Ozi Explorer)形式への変換
    GPSTrackMakerを利用して,mif/midファイルをplt形式に変換します.
    まず,GPSTrackMakerを起動します.
    次に,GPSTrackMakerの「file」メニューから「Merge File」を選択します.
    ここで,ファイル読み込みのウインドウが開きますから,対象フォルダを「c:\ehime\DK」(DKファイルの場合)とします.
    そして,「ファイルの種類」を「MapInfo Files (*.mif/mid)」とします.すると,変換済みのmifファイルが全て表示されますので,「shift」キーを押しながら,全てのファイルを選択し,開きます.

    その後,ファイルを読み込む毎に,確認の為のウインドウが出現しますが,単に「Return」キーを押し続けるだけで結構です.

    読み込みが完了したら,今度は,plt形式での保存です.
    「file」メニューから「Save File As」を選択し,対象フォルダを「c:\ehime」とします.
    そして,「ファイルの種類」を「OziExplorer (*.wpt,*.plt,*rte)」とし,ファイル名を「DKplt」として保存します.
    保存を行うときに,全てのトラックを1つのファイルにするかどうかを聞いてきますので,
    「Export all tracklogs to an unique file」を選択して「OK」をクリックします.

    これで,「DK」,つまり,道路に関するpltファイルの作成が完了しました.
    同様にして,「KK」,「SK」,「TK」についても,pltファイルを作成しましょう.
    (注意:pltファイルを作成する毎に,GPSTrackMakerの「file」メニューから「new」を実行しましょう.さもないと,追加読み込みとなってしまいます.)

  8. imgファイルの作成
    GPSmapper(コマンド名「cgpsmapper.exe」)で,pltファイルからimgファイルを作成します.
    「c:\ehime」フォルダの中に「cgpsmapper.exe」を入れておきましょう.
    (地図をGPSに転送する際に,「sendmap.exe」も必要となりますので,まとめて入れておくと良いでしょう)

    作成に当たっては,作成されるimgファイルを特徴付ける情報を記述したファイルを用意する必要があります.
    これは自分で編集してもかまいませんが,これなどを利用しても結構です.
    このファイルを「c:\ehime」フォルダにおいてください.
    ただし,このファイル(map.txt)の中の「ID=81380000」と書かれている8桁の数字の部分は,完成後の地図ファイルの名称となり,他の地図ファイルとは異なる必要があります.ここの例では,私が勝手に決めた番号ですが,国際電話の日本の国別番号「81」と,国土地理院の数値地図のデータファイルで愛媛県関係のファイルにつけられていた数字の頭2桁「38」にちなんでつけました.
    また,「Name=Ehime」の部分は,GarminのGPSで地図情報として表示される部分です.ここも,適宜書き換えましょう.
    その他,出来上がったimg地図でのZoomレベルによる,表示の有無の変更などは,他の方々のページを参考にしてください.
    (すみません,とりあえず,そこまで書く元気が,「今のところ」ありません.)

    では,実際に,imgファイルの作成ですが,コマンドプロンプトで
    「cgpsmapper.exe ac -p map.txt」
    と入力してください.少し時間が掛かりますが,pltファイルからimgファイルが作られます.

  9. imgファイルの確認
    さて,出来上がったimgファイルの確認です.
    GPSMapEditを起動し,作成したimg地図ファイルを読み込んでみましょう.
    うまく表示ができたでしょうか?
    Zoomを変更すると,先ほどの,map.txtで設定されているように,概略レベルでは,海岸線や湖,池などの水際ライン,中間レベルでは,さらに鉄道と河川,詳細レベルでは道路情報も表示されるのが確認できます.

  10. GPSへの転送
    さあ,いよいよ最後です.
    GPSとPCを接続します.次に,接続されているポート番号を確認します.
    例えば,com3に接続されているならば,コマンドプロンプトで
    「sendmap com3 -s57600 81380000.img」
    と入力することで,転送が始まります.
    「-s57600」は,転送速度を表しており,私の経験では,この速度での転送には問題がありませんでした.
    しかし,うまくいかない場合には,「-s38400」や「-s19200」,「-s9600」なども試してください.また,うまくすると,「-s115200」でも成功するかもしれません.

    転送の失敗の原因としては,comポートの番号誤りが多いようです.Windowsのコントロールパネルから「システム」-「ハードウェア」-「ディバイスマネージャ」と選んでいき,ポートの確認をしてみましょう.

    TIPS:
    「sendmap com3 -s57600 81380000.img 81370000.img」のように,複数のファイルを指定することもできます.

最後に(感想など...)

皆さんうまくいったでしょうか?

POIなど入っていませんし,道の名前なども出ませんが,お金をかけることなく,ここまでできたので,個人的には満足しています.

現在,道路については,せめて,「名前なし」,「国道」,「高速道路などその他の名前付き」の3種に分けて,表示線種やZoomレベルを変えるべく工夫をしていますが,うまくいってません.
個別にはimgファイルの作成ができているのですが,なぜか,3つに分けて作ったpltファイルと他の(鉄道や水際,河川)pltファイルと統合してimgファイルを作成すると失敗してしまいます.
何とかしたいのですが,時間と気が向けばまたやってみます.
本当は,数値地図25000(空間データ基盤)から直接さわってみたいのですが,こいつのフォーマットに関する情報も見つけれないので,お預けです.

と思っていたら,国土地理院のHPに掲載されている,数値地図25000(空間データ基盤)のビューワーソフトのLZHファイルの中に,ダウンロードデータを地理情報標準準拠のXML形式に変換するソフトがついていました.
まだ試していませんし,地理情報標準に関する情報も,A4サイズ5枚の線図の資料しか入手できていませんが,
少し可能性は開けた様な気がします(気がする程度 :−)
となると,

といった可能性が出てきました.

また,いっそのこと,XMLで書かれた情報から,いきなりplt形式ファイルを作成する方が良いかもしれません.
(pltファイルにつていては,眺めていると何となくわかる部分もあるのですが,ちゃんとした仕様資料を探している最中です)

#期待されている方々へ(大木こだま・ひびき風に「そんなやつおるか〜」):
#すみませんが,本職の方が忙しいので,少ない空き時間でしか作業ができません,気長にお待ちください.
#(私が一番,出来上がることを期待してます. :−)

さて,個人的には,近隣の県(四国,広島,岡山)や,出身地である関西圏,出張で出かけることの多い関東圏などの地図を作りたいのですが,「map25K_VEC.exeでの変換作業が面倒」なのと,「eTrex Vistaにどれだけの容量が入るのか」という点から,これも,少しお預けです.
#飛行機の窓からの景色も,GPS+地図で,位置を確認できたらもっと楽しいかなと...(離着陸時以外はGPSはOKですよね?)

MapSourceを全くもってないので,ここに掲載した方法で作成した地図の使い勝手がどれほど劣っているのか,全くわかりません.
お持ちの方の感想なども,お教え頂ければ幸いです.
そもそも,eTrex Vistaを入手(03年8月17日)して,日が浅いので(実は,このページの掲載時には,「eTrex」を「eTrek」だと思っていたくらいです:−),実際のGPS利用時の要求など,まだまだ理解していない点もあります.「こんなときに,こんな情報が表示できてたらうれしい」といった話も,教えて頂ければうれしいです.

なお,この作業を進めるに当たっては,GaKさんのこのページが,大変刺激になり,また参考になりました.特に,GPSmapperの設定ファイルについては,大いに参考にさせて貰いました.ありがとうございます.

また,ここで利用させて頂いているソフトウェアの作者の方々には,本当に感謝しております.

何か質問がありましたら,kob@cs.ehime-u.ac.jpまでお便りください.
また,「うまくいったよ」とか,そのほかの感想なども,送って頂けるとうれしいです :−)
(といっても,個別に回答することは,まず不可能かと思いますが....(すみません))
また,知的所有権等には,抵触していないと思いますが,もし,問題があるようでしたら直ちに変更・削除しますのでお知らせください.


主な更新履歴

2003年9月5日 Translate.class実行のためのJava動作環境のバージョンに関する情報を追加.

2003年9月2日 Javaのインストールに関する情報のリンク先追加.「最後に」を加筆.

2003年9月1日 Translate.classの差し替え(誤って開発途上版を掲載していたものを,完成版に置き換え).「mif/mid形式への変換(その2)」のバッチファイルの説明の誤記訂正.
開発途上版をダウンロードして,悩まれた皆さん.すみませんでした.

2003年8月29日 公開開始


kobのページへ