GPSに地図をのせる方法(新)

(Last updated 2014.11)

 国土地理院は新たに2007年度から基盤地図情報を公開し、データをダウンロードできるようになっています。この中には10m間隔等高線のデータも含まれているので、これまで有料でしか入手できなかったガーミンGPS用の10m等高線入りマップソース互換地図を手作りすることが可能になりました。
 また、最近のガーミンGPSではカスタムマップを載せることができるようになりました。カスタムマップはグーグルアースのkmzファイルと同じ形式であり、カシミール3Dによって地形図から作ることができます。カスタムマップは画像ファイルなので、英語版GPSでも地図は日本語になります。
 このページではこれらの地図の作り方について説明します。
地図をのせることができるGPS
カスタムマップの作り方
マップソース互換地図を作る
  基盤地図情報とは
  シェープファイルを経由する方法
  XMLをPFMに書き換える方法
  PFMをマップソース互換地図に変換する
  等高線以外の地図
  GPSに地図を送る
  GPSに表示される地図
GPS用地図を扱えるソフト

地図をのせることができるGPS

 ガーミンGPSの現行機種では、eTrex10以外のほとんどの機種でカスタムマップを載せることができるようになりました。カスタムマップはファイルサイズが大きいので、内蔵メモリーが少ない(300MB以下)旧機種ではマイクロSDカードが必要になります。
 マップソース互換地図(拡張子がimgのファイル)は内蔵メモリーがあるGPSに載せることができますが、容量が少ない機種では広域の精密な地図は無理で、一部の地域しか入りません。例えば、北海道全域の10m間隔等高線地図は、260MBくらいになります。最新の機種では内蔵メモリーが多いので北海道だけならば十分、入ります。

カスタムマップの作り方

マップカッターでカシミール3Dの地形図を切り出す
 ガーミンのカスタムマップというのは、基本的には画像(ラスター)地図を使う方法です。使われている方式はグーグルアースの使っている拡張子がkmzのファイルと同じで、このHPでも他のページで紹介しています。 kmzファイルはkmlファイルをzip形式で圧縮したファイルで、kmlファイルの中身は、画像(jpeg)ファイルと位置情報を含むファイルをまとめたものです。ですから、拡張子のkmzをzipに名前変更すると、解凍して中身のファイルを取り出すことができます。ちなみに形式は違いますが、同じような方法は、ラスター地図をポケットPC(Window CE)にのせてGPSナビを可能にしたGarmapCEで行われていましたし、現在ではスマホのGPSアプリにも使われています。
 カシミール3DはGarmapCEに対応した地図切り出しができましたが、ガーミンのカスタムマップにもいち早く対応しています。地図の切り出しにはマップカッター プラグインが必要です。最新のプラグインはこちらからダウンロードしてパソコンにインストールしてください。ここではカシミール3Dを使ったカスタムマップの作り方を説明しますが、ちょっとコンピュータの知識があればいろいろな地図、例えば各種の業界用地図などもカスタムマップとしてGPSに組み込むことができます。
マップカッター画面
 作り方はカシミール3DのHPで詳しく説明されていますが、いくつかの注意点を含めて解説します。最初に、地図をオンラインで表示しているときは、カスタムマップにしたい範囲を一度表示して、地図のダウンロードを完了させておきます。そうしないと、できあがったときに空白の地図が含まれることがあります。地図の等高線を鮮明にするために、[表示]-[パレットの選択]で[マップカッター専用]か[冬山の色分け]にします。さらに「地図画像パレット」を開き、「デフォルトの色を使用する」のチェックを外し、等高線や背景の色をコントラストが高くなるように設定します。
 次に地図を印刷するときにもするように、[編集]-[選択範囲を決める]をクリックします(緯度経度を指定する方法もあり)。地図画面をマウスでドラッグして選択範囲を決めます。広い範囲を 選択する場合には、地図を縮小し、選択範囲の端をマウスでつまんで広げる方法が楽です。選択した範囲は[マップカッター]-[領域の選択と保存]で保存できます。地図を作り直すときに便利です。あまり広い範囲を選択するとファイルサイズが大きくなりすぎ、GPSで地図の表示までにかかる時間が長くなるので、適当な大きさにします。
PCにオレゴンGPSをUSB接続したときのフォルダ表示。本体とマイクロSDカードがドライブDとEになっている。
 範囲が決まったら、[ツール]-[マップカッター]-[切り出し]をクリックし、マップカッター画面になります。ここではファイルの保存場所、ファイル名を入力し、[GARMIN/Google KMZ形式]を選択します。大きな地図は分割する必要がありますが、最大で10x10までです。1枚の地図の画像サイズは左の窓に表示されますから、おおよそ2000x2000dot以内になるように分割数を決めます。JPEG品質は小さいほど圧縮率が高くなり、ファイル容量が小さくなりますが、画像は粗くなります。
 できあがったkmzファイルは、Google earthに読み込んで地図画像が完全であることを確認します。前にも書いたように、拡張子kmzをzipにして解凍し、jpeg画像ファイルを画像ビュアーで見る方法もあります。
 カスタムマップをガーミンGPSに入れるには、マイクロSDカードに入れるのがよいでしょう。カシミール3Dにも説明されているように、パソコンから直接コピーすることができます。すなわち、OregonなどはパソコンとUSBケーブルで接続すると、マスストレージ接続になり、GPSの内蔵メモリーとマイクロSDカードはパソコンの外付けHDDやUSBメモリーのように見えます。そこでマイクロSDカードにGarminというフォルダをつくり、さらにその下にCustomMapsというフォルダをつくり(右のフォルダ画面参照)、その中にkmzファイルをコピーします。コピーするkmzファイルは複数でもかまいません。本体メモリーに余裕があれば、本体のCustomMapsフォルダにコピーしてもかまいません。
1/25000地形図(左)と1/6000地形図(右)から作ったカスタムマップ。いずれもMAT図から
 USBケーブルを外すときは、パソコンの「ハードウェアの安全な取り外し」機能を使ってください。GPSの電源をオンしてもカスタムマップはすぐには表示されません。地図を拡大してゆくと、縮尺500mくらいから表示されますが、英語版のベースマップは表示が粗いので、どこにあるかわからなくなることがあります。緯度経度を表示するようにしておくと探すことができます。当然ながら、実際にカスタムマップの場所に行ってGPSの位置測定が終われば、地図が表示されます。カスタムマップの上にもトラックやウェイポイントは表示されます。
 カスタムマップを1/25000地形図から作ると、拡大していったときに画像がボケてきます。1/6000地形図から作ると鮮明になりますが、kmzファイルのサイズが大きくなり表示が遅くなります。鮮明な地図を希望するならば、実際に入る山域だけのあまり広くない地域について1/6000地形図からカスタムマップをいくつもつくり、山行毎に切り替えて使うことになるでしょう。
 カスタムマップは地形図のコピーですから、当然ながら、すべての地図記号は表示されますし、カシミール3Dの地形図が3D(MAT図)であれば、山の凹凸の陰影が表示されます。1/6000地形図からのカスタムマップならならば、紙の1/25000地形図よりもはるかに鮮明で、詳細な地形を読みとることができます。

マップソース互換地図を作る

基盤地図情報とは

 私たちがよく使う紙の国土地理院2万5千分の1地形図は画像(ラスター)データですが、基盤地図情報はベクトルデータです。ラスター地図を拡大してゆくと等高線はボケボケでギザギザになりますが、ベクトルデータは拡大してもギザギザにはなりません。ベクトルデータには線が(ベクトル)数値として入っていますから、拡大しても線の質は変わりません。なぜベクトル地図の話をするかというと、ガーミンGPSの地図はベクトル地図だからです。そして同等品(以下、マップソース互換地図という)は国土地理院の基盤地図情報から作ることができます。

国土地理院基盤地図情報ダウンロードサービス

 さて、インターネットの国土地理院の基盤地図情報のページには、概要だの背景・経緯だの目的だの基本理念だのと、いろいろなことが書かれていますが、読んでいると頭が痛くなるので読み飛ばし、使えるところを使わせていただくことにします。まず、「基盤地図情報の閲覧・ダウンロード」 のページに行きます。次に「基盤地図情報のダウンロードサービス」へ。ここでは三つの情報を利用できます。利用者登録制になっており、利用に当たっては事前に登録してIDと仮パスワードを取得する必要があります。仮パスワードはログイン後に変更できます
 これらのうち「基盤地図情報 数値標高モデル」は5mおよび10mメッシュ標高データで、10mメッシュ標高データはカシミール3D の3D(MAT)地図を作るのに使います。ガーミンGPS用地図のデータは「基盤地図情報 基本項目」の中にあります。JPGIS(GML)形式のボタンをクリックすると「条件選択」ページになります。ここには 海岸線、行政区画の境界線及び代表点、道路縁、軌道の中心線、標高点(数値標高モデルを除く)、水涯線、建築物の外周線、などの10項目のデータがあります。この中で10m等高線のデータは標高点(数値標高モデルを除く)です。リストの都道府県から北海道を選択し、標高点にチェックを入れて「次へ」ボタンを押すと、「ダウンロードファイルリスト」ぺージになり、72個のzipファイルがあります。HDDの空き容量を確認してからダウンロードします。
 ダウンロードは[すべてチェック]ボタンで全選択し、[まとめてダウンロード]ボタンで行います。このzipファイルを解凍すると、FG-GML-6xxxxx-Cntr-yyyyyyyy-0001.xmlとFG-GML-6xxxxx-ElevPtr-yyyyyyyy-0001.xmlという二種類のファイルになります。前者が等高線データで後者は標高点データです。等高線地図に使うのは等高線データだけですので、これらを別のフォルダーに移動します。なお、これらのデータの使用が個人用途であれば、使用許可の申請は必要ありません。
 このxmlファイルからガーミンGPS用の等高線地図を作るには、二つの方法があります。一つはシェープ(Shape)ファイルを経由する方法、もう一つはテキストファイルであるxmlファイルを書き換えて、ポーリッシュフォーマット(polish format)ファイル(以下、PFMファイルという)にする方法です。

シェープファイルを経由する方法

 国土地理院は基盤地図情報を閲覧したり、変換したりするソフトを提供しています。「ダウンロードサービス」ページの下の方にある表示ソフトウエアの「基盤地図情報ビューア」(8.5MB zipファイル)」です。ダウンロードして zipを解凍し、パソコンにインストールします。このソフト(FGDV.exe)はxmlファイルのデータを表示するとともにシェープファイルに変換する機能があります。シェープファイルは、GPSマップエディタ(後述)によってガーミンGPS用の地図(imgファイル)に 変換することができます。

FGDVに等高線xmlファイル10個読み込んだところ

 FGDVはお役所が提供するソフトですから、たいへんお粗末でのろまなソフトです。xmlファイルを読み込むのも、データを表示するのにも、たいへん長い時間がかかります。さらに、何かするとすべて再描画するのですが、これがまた実に遅い。したがって、あまり多くのxmlファイルを読み込むのは禁物です。地図を分割しても後でまとめることができます。
 標高データを読み込んだFGDVの表示は真っ黒になります。これは広い地域を表示しているときにも、すべてのデータ(等高線や標高数字)を表示するからで、大きく拡大すると等高線が見えてきます。一般にベクトル地図のよいところは、広い地域を示すときはデータの主要部分だけを表示し、拡大してゆくにしたがって、細かい部分の表示に切り替わってゆくことです。ところが基盤地図情報でもFGDVでも表示レベルを制御するようになっていません。これは等高線以外のデータについても同じで、GPS用の地図を作るときに困った問題になります。
 シェープファイルへの変換は、[エクスポート]-[エクスポート]の変換種別でシェープファイルを選択し、[OK]ボタンで出力です。これも時間がかかります。終わると、拡張子がdbf、prj、shp、shxのファイルができますから、これらを一つのフォルダにまとめておきます。
 次にGPSマップエディタ(GPSMapEdit)に読み込みますが、GPSマップエディタはこちらからダウンロードしてパソコンにインストールしてください。日本語版はありません。シェープファイルの読み込みは[File]-[Import]- [ESRI shape(*.shp)]です。大きなファイルは読み込みエラーになります。途中で「Select object type」という窓が出ますが、等高線の線種を指定せよということです。0x0021 interm. land contour[1/2]あたりにしておきます。0x0000は後でエラーになるので注意。Levelは0しかないのでそのまま。
 GPSマップエディタでも等高線の表示は最初からすべて表示されるのでつぶれてしまい、拡大しないと線を見ることができません。この地図でまず最初に気づくことは等高線の標高が出ないことです。また、この方法では計曲線を太い線にすることもできません。GPS用の地図作成は他の方法が良さそうです。

XMLをPFMに書き換える方法

 この方法はxmlファイルをシェープファイルを経ずに直接、PFMファイルにする方法です。xmlファイルもPFMファイルもテキストファイルであり、等高線データは点(緯度・経度)の集合として記述されていますが、その形式が違うだけです。xmlファイルでは<jps:coordinate>と</jps:coordinate>の間に点データが1個書かれているのにたいし、PFMファイルではData0=の後にデータが羅列しています。他の違いもすべて文字列の書き換え、削除や書き足しだけなので、テキストエディタで変換することができます。

等高線データのxmlファイル(左)とPFMファイル(右)の違い
 しかし、データが膨大なので書き換えはコンピュータにやって貰うしかありません。このような文字列を扱うプログラム言語はいくつかあって、サトシンはJGAWKというのを かじったことがあるのですが、今はもうすっかり忘れてしまって、いまさら取り組む気力もありません。
 この変換をエクセルのVBAでやっている人がいます。「アベル父さんの時々山と山スキー」に詳しく書かれており、エクセルのVBAモジュールを公開して誰でも使ってもよいとしているので、ありがたく使わせていただきます。アベル父さんに感謝!
 この方法の良いところは、 (1)等高線の間隔を変えることができる、(2)選んだ等高線の線種、標高表示、表示レベルを変えることができる、(3)設定した標高以下の等高線を作らない、ことです。公開されているモジュールでは、地図のサイズを小さくするため(メモリーの少ないGPSに入れるため)、(1)500m未満の等高線はつくらない、(2)間隔は20m、(3)最初に500m間隔の等高線を表示し、拡大すると20m間隔に切り替わる、ようになっています。
 作りたいのは10m間隔の等高線地図なので、このスクリプトを少し書き換えます。最初からスクリプトを書くのはたいへんですが、書きかえるだけならいたって楽で、以下のようにかえました。(1)最初(レベル2)は500m間隔の等高線(線種は0x0022)を表示、 (2)拡大してゆくと(レベル1)100m間隔等高線(線種0x0022)に切り替わり、(3)最後に(レベル0)10m間隔等高線(線種0x0021)に切り替わる、(4)10m等高線では煩雑になるので標高値を表示しない、(5)ヘッダー部を少し変更。
オリジナルVBAモジュールを書き換えた部分
 ヘッダー部には、後にGPSエディタでPFMをマップソース互換地図(imgファイル)に変換するとき、書き込まなければならない項目(cGpsMapperのマニュアル参照)が盛り込まれています。変更したのは、(1)TreSize=1500→1000:この値が大きいほどファイルサイズは小さくなるが粗い表示になるので、推奨値の最小値1000にした。(2)RgnLimit=127→1024:よくわからないが推奨値は1024。(3)Levels=3→4:表示を500m→100m→10m等高線と3段階に切り替えるためにはレベルが四つ必要(最後のレベルは空でなければならない、4以上には増やすことはできないという仕様のため)。これに伴い Level3を追加し、Zoomも増やしました。
 このVBAモジュールをエクセルのマクロとして実行し、最初のxmlファイルを指定すると、フォルダ内のすべてのxmlファイルを一つのPFMファイルに変換します。しかし、あまり大きなPFMファイルは後にマップソース互換地図に変換できません。ファイルの内容(pointの総数)によって変わりますが、サイズが400MBあたりが変換できる限界なので、xmlファイルの数は22以下にしておくのが無難です。

PFMファイルをマップソース互換地図に変換する

 できたPFMファイル(拡張子がmpのファイル)をGPSマップエディタの[File]-[Open]で読み込みます(ドラグ&ドロップ可)。ファイルのつながり具合を見るために、[File]-[Add]で次のPFMファイルを読み込みます。すべての地図がつながっていることを確認します。また、拡大してゆくと地図が切り替わることも確認。

Map Propertiesの設定

 次に一つのPFMファイルについて、[Map Properties](アイコンあり)を開きます。ここでHeaderタブのIDは8桁の数字で、他の地図と重複しないようにします。重複するとその地図が表示されません。Code pageは日本語の場合は932、英語の場合は0です。
 LevelsタブではXML-PFM変換したファイルは変換の時にすでに設定済みなのでそのままでよいでしょう。シェイプファイル経由で作ったPFMファイルでは広域から10m等高線が表示されるので、拡大したときに表示されるように変える必要があります。まず、[Insert before] ボタンを押してレベルを増やします。次に[Change]ボタンを押して地図が割り当てられているLevel0の[GPS zoom]を希望する縮尺レベル(500〜800mくらい)に設定します。
 cGpsMapperのところでは、TreSize=1000、地図が透明(transparent)Sになっていることを確認します。透明でないとベースマップが表示されません。
 最後に[File]-[Save Map As]のPolish Formatで保存します。これはGPSマップエディタの仕様なのでしょうがありません。保存するとファイルサイズが小さくなります。次に、マップソース互換地図に変換するのですが、 その前にcGpsMapperというソフト(フリー版でよい)をこちらから入手し、インストールしておく必要があります。変換は実際にはcGpsMapperが行うのです。[File]-[Export]-[Garmin IMG/cGpsMapper]をクリックし、imgファイルの名前を決めます。 そうすると「Export to cgpsmapper.exe」の窓が開くので、Path to cgpsmapper.exe欄にパスを指定します。変換にはまた時間がかかります。mpファイルが大きすぎたり、LAN上のHDDに置いてあったりするとエラーになります。

等高線以外の地図

 等高線の地図の他に道路や線路や河川の地図も欲しいところです。基盤地図情報には道路縁、軌道の中心線、水涯線(河川を含む)のデータがあるので、これらの地図を作ることは可能です。 ところが、軌道以外はちょっと問題があります。道路は「道路縁」と書かれているように縁のデータで、種別(タイプ)は一般道とトンネル内道路の2種類しかありません。したがって、高速道路とか国道とかを区別できないのです。 以前の空間データ基盤のデータでは道路中心線データと10種にも及ぶ種別があったので、拡大率によって表示する道路を切り替えることができましたが、基盤地図情報のデータではこれができません。河川についても空間データでは大きな二条河川と小さな一条河川に別れていましたが、基盤地図情報では川岸や水域の線データのみで、人工の小さな水路までも含まれています。
 ということで、基盤地図情報はレベルを切り替えて使う地図のデータとしては適していないようです。等高線の場合は標高値によって切り分けることができましたが、他のデータではそれができないように思われます。そこでサトシンは今は無き空間データ基盤(北海道についてはダウンロードして保存してある)からMapview25000を使って作った海岸線・道路・軌道・河川の地図を使っています。これで困ることは、新しくできた道路が 表示されないことですが、山用のGPSをカーナビに使うこともないので問題なしです。

GPSに地図を送る

Sendmap20の画面

 ガーミンGPSに地図を送るのにはSendmap20というソフトを使います。こちらからダウンロードしてインストールしてください。GPSに送りたいimgファイルを選択し、Sendmap20の画面にドラグ&ドロップすると読み込まれます。 Mapsetの名前をつけます。GPSをUSBケーブルでつなぎ、「connect」ボタンを押すと、機種名が表示されて接続が確認できます。接続までに時間がかかることがあります。
 eTrexなどの古い機種では、ここで「Uproad to GPS]ボタンを押すとよかったのですが、Oregonなど最新機種のマイクロSDカードに地図を送りたいとき、これではできないようです(本体の方に送られてしまう)。そこで「Create GMAPSUPP.IMG」というボタンを押すと、全部のファイルをまとめたGMAPSUPP.IMGというファイルができます。ガーミンGPSではベースマップ(gmapbmap.img)以外の地図はgmasupp.imgとする仕様になっているようです。さらに他の地図を加えたいときは、ファイル名の末尾をGMAPSUP2.IMGのように変えて重複しいないようにします。これができるので、道路地図、地名地図、等高線地図などを別々につくって入れることができます。GMAPSUPP.IMGをマイクロSDカードに送るには、マスストレージ接続したGPSのマイクロSDカードのGarminフォルダ(なければ作る)にコピーします。

GPSに表示される地図

 このようにして手作りしてGPSに入れた地図がどのくらいのものか、見本を示します。 

縮尺2kmまで500m間隔等高線(左)、縮尺800mから100m間隔等高線(中央)、縮尺300mから10m間隔等高線(右)に切り替えて表示

GPS用地図を扱えるソフト

GPSマップエディタ
編集したい項目にチェックをつける

 このソフトはすでにPFMファイルをガーミンGPS用のimgファイルに変換するのに使っているのですが、その他にも使いみちがあります。もっとも有用なのは、既存のimgファイルから不要の部分を削除するなど、地図を編集できることです。例えば、 以前Mapview25000で作った地図から、10m等高線地図ができたので不要になった50m等高線を削除したり、不要になった英語地名を削除する、などです。[Edit]-[Select Types]-[By Type]をひらくと、タイプ一覧が表示されます(右図)。 これらの表示項目で削除やコピーをしたい項目にチェックを入れます。例の場合、等高線は3種のタイプになっているので、3タイプともチェックします。これらの項目を削除したいときは、 [Edit]-[Delete](またはDelキー)です。編集後はPFMとして保存します。同様にして、他の地図にコピーすることなどができます。しかし、新しい項目を足したい場合は、それらをmpファイルにして追加読み込み(add)した方が楽です。
  なお、GPSマップエディタの機能を少し拡張したMapEdit++というソフトもあります。

マップソース

 ガーミン純正の地図を買うと、マップソースというソフトがついてきて、GPSへの地図のアップロードや編集などができます。マップソースはガーミン社のサイトからダウンロードしてPCにインストールできますが、 ガーミン製品をインストールしていないと起動しません。しかし、ガーミンのサイトからトレーニングセンターとかベースキャンプとかいうソフト(無料)を ダウンロードしてインストールしておくと起動するようになります。これはガーミン社が設定したことですから、マップソースの違法な使用ではありません。

マップソースに手作り地図を表示させたとこ

 マップソースのよいところは、日本語版があることや、アイコンや線種などの表示がGPSの表示と同じことなどです。マップソースが読み込めるファイルは、拡張子がgdbやgpxのファイルで、これらはカシミール3Dがウェイポイントやトラックを書き出す書式の一つです。したがって、カシミール3Dで作ったウェイポイントやルートはマップソースに読み込んで、表示したり編集したりすることができます。ウェイポイントのアイコンを結果を見ながら変えることができるのは、GPSマップエディタではできないので、助かります。 これらはGPSに転送したり、GPSにあるものをマップソースに取り込んだりできます。
 ところが、マップソースは手作りのimgファイルを読み込んでくれません。これは、マップソースの地図はパソコンのレジストリに登録しないとならないためです。こういうことはなんとかしてくれるソフトがあるもので、例えば、gmaptoolを使うとimgファイルを読み込めるようになります。マニュアルの英語がわからない人は、こちらとかこちらなどに使い方が書いてあったりします。gmaptoolで登録したimgファイルは見つからないので探したところ、[表示]-[製品の切り替え]にありました。しかし、この地図はGPSに転送することはできないようです。転送できるようにする方法もあるらしいですが、必要性が薄いのでまだ調べていません。

inserted by FC2 system