OpenStreetMapからGarmin GPS用の地図ファイルを作成する

MAXXIS太魯閣国際ヒルクライム2016に参加する際、Garmin GPS デバイス用の台湾地図が欲しかったので、Open Street Mapから自分で作成する事にしました。

太魯閣や花蓮について一般地図よりも詳細な地図が欲しいところですし、今後、出張でイスラエルやメキシコに行く事があった際などに自分で何とかできるようになりたいので、この機会に覚えてしまいます。

使用するのは mkgmap と splitter というJavaのソフトウェア(というかライブラリ)です。

どちらも mkgmap 本家からjarファイル形式でダウンロードできます。

リンク先の本家ではパソコン上で作成した地図をデータ転送用のソフトを用いて GPS 端末に転送する方法を説明していますが、私はそんな面倒なことはしたくないので gmapbmap.img やら gmapsupp.img やらのファイルを作成して GPS 端末の Garmin ディレクトリ (フォルダ) 直下に置くことを考えます。

GarminのGPSデバイスは、このディレクトリに含まれている img という形式のファイルを自動的に読み込んで地図として表示します。

したがって、デバイス購入時から含まれている img ファイルを削除して、ご自身で作成された img ファイルで上書きしてしまえば、その地図情報が端末に表示されるようになります。

例えばこんな具合に。


そこで OpenStreetMap というフリーの地図データを素材に、この img ファイルを自作してしまおうという訳です。

そこでドキュメントを読み込んでいくと、どうやらOpenStreetMapの地図ファイル作成には *.pbf という形式のファイルが必要となる事が分かりました。

このPBF形式のファイルの入手は OpenStreetMapによると、複数あるリンク先のサイトの中からダウンロードできるとの事です。

配布元のサイトを幾つか抜粋すると、このような具合。



私が今回欲しいのは台湾の道路地図と花蓮の詳細地図なので、Geofabrikから Sub Region: Taiwan と Metro Extracts から Hualien のタイル (PBFファイル) をダウンロードします。

ファイルを確認すると、ちゃんとpbf形式になっていますね。




Wikiを見ていくと、mkgmap を使う前にpbfファイルを分割する必要がありそうなので、splitterを使ってダウンロードしたファイルを分割します。

これは mkgmap が対応できるデータの容量に限りがあるためで、一部の都市だけのデータを用いる場合など、対象のデータサイズが小さい場合には必要ないこともあります。

しかし、扱う範囲が北海道や九州、台湾ぐらいの大きさになる場合には、予め分割しておいたほうが無難です。

分割する際には Java の VM に 2GB 程度のメモリを割り当てる必要がありますので、実行前にお使いのパソコンの状態をご確認ください (と言っても最近の機種であれば、4GB以上のRAMが搭載されていることが普通なので、あまり問題になることはないかと思います)。

ここで実行時にエラーを吐き出した場合、おそらくJavaのバージョンがあっていないので、シムリンクを張り替える必要があります。

実行すると新たなファイルが幾つか生成されますが、このうち使うのは 632なんとか.osm.pbf というファイルです。

他のファイルを使うと様々な設定ができそうなのですが、取り敢えずはファイルを作成する事を優先するので、今回は割愛します。

何に使うのか、そのうち調べておかないとな(・。・;

mkgmapの実行が終わると、gmapsupp.img というファイルができますので、これをGarmin GPSデバイスの指定ディレクトリ(/Garmin)に置くとデバイスで地図を読み込めるようになります。

一緒に作成された 6324なんとか.img というファイルを試しにデバイスの Garmin ディレクトリに置いてみると、現在の gmapsupp.img の内容(日本地図)に加えて、台湾の地図も表示できる謎デバイスに
仕上がりました。

これってストレージ容量が許す限り、いくらでも重複して入れても良いのですかね。

Garminデバイス側の設定で、どの地図を表示するのか選ぶ事ができるのですが、たくさん有りすぎて、どれがどこの地図だか分からなくなりました。PC上で調べれば分かるので、転送する前に把握しておけば良いのですけどね。

これで一応は、台湾行きの準備が整いました。

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us