gpsVP+地形図

Home
Last update: 2010/06/26

gpsVP + GSImap on T01-A

オフラインでもGoogle mapsを使えるフリーソフト「gpsVP」に国土地理院の地形図を表示させる方法。 かなり面倒ですけど、一応できました、というご報告。 この通りやれば多分大丈夫、というマニュアル風に書いておきます。 詳しい説明などは別の機会にでも。

なお、実際にやってみる場合はご自分の責任でお願いいたします(お約束)。

作業の流れ

  1. gpsVPの準備
  2. 地形図の範囲決定 (専用webpage)
  3. 地形図画像の切り出し (カシミール3D)
  4. 画像の拡大縮小と修正 (藤)
  5. 256×256ピクセルのタイルに分割 (分割結合)
  6. タイル画像のリネームと移動 (専用ツール)
  7. gpsVPのキャッシュへ転送

1. gpsVPの準備

一応ダウンロードサイトをリンクしておきます。Windwos用 と Windows mobile用(!)があります。

  • http://code.google.com/p/gpsvp/downloads/list
  • 設定ファイルを作ります。

    gpsVP.exe があるフォルダに、"MapConfigs" という名前のフォルダを作り、その中に "GSImap.ini" とか好きな名前(.iniは必須)で 次のような設定ファイルを置きます。URLは空ですので念のため。

        [Tiled MAP]
        gpsVPVersionMin=0.4.18
        Filename=x=%X&y=%Y&zoom=%ZOOM_17.png
        URL=
    

    このほか、キャッシュのフォルダを指定、ダウンロードをenableにするとか、Google map が見られるよう、 忘れないで設定しておいてください。

    2. 地形図の範囲決定

    Google maps に合わせるには、切り出す境界となる緯度・経度が決まってきます。それを調べるためのページを作りました。

  • Google maps タイル座標と緯度・経度 http://bios.sakura.ne.jp/gf/pc/maps/tilexy.html
  • 要するに、上記ページの地図上の縦横線で切り出す必要があるわけです。 「レベル」については、切り出す地図の縮尺との関係もあり、いろいろオプションはあります。 が、ここでは、『「ウォッちず12500」を「gpsVPのレベル13」で切り出す』ということで話を進めます。 (なお、本家GoogleとgpsVPの「レベル」は1つずれますのでご注意)。

    3. 地形図画像の切り出し

    「カシミール3D」の「マップカッタープラグイン」でやります。

  • http://www.kashmir3d.com/
  • カシミールの編集メニューから「緯度経度で範囲指定」をします。このとき、緯度経度を小数点表示にします。 #ボタンで変更できます。 数値は、2. に示した専用ページからコピー(IEならボタンで小数点以下をコピー)して持ってきます。

    選択した範囲は、『ウォッちず12500』で全体を必ず一度表示させてください。 そうしないと、一度も表示されていない部分はダウンロードされず、一部空白になった画像ができます。

    切り出しは全体1枚のスント形式にします。GarmapCE形式を選んでこの段階で画像分割しようとしたのですが、 どうも微妙に位置がずれたりして、うまくいきませんでした。 あとのオプションは「16ビットのBMP」(8だと広い水面の色が出ない)、マップカッター専用パレットの使用、 などを使っています。環境にもよると思うので、いろいろ試すと良いと思います。

    切り出された画像ファイルにつける名前はとても重要です。 たとえば、タイル座標が x=3610 y=1612 の場合、 ファイル名は 3610-1612.bmp とします。 座標xとyの間は、必ずハイフンで区切ってください(6. で使うツールの都合)。

    なお、カシミールの地図スクロール操作には慣れないと注意が必要です。 選択領域を動かしてしまったり、大きく動かしてもとに戻せなかったりします。 表示倍率は1/2にしておくと良いです。

    4. 画像の拡大縮小と修正

    カシミールで切り出した画像の大きさは「ウォッちず12500」を「gpsVPのレベル13」の場合で、3150×2750 ピクセル程度になります(正方形ではありません) この.bmpファイルを変形させ、1024×1024、2048×2048、4096×4096 の3枚の正方形のpngファイルを作ります

    大きさを区別できるよう、それぞれ T3610-1612.png、S3610-1612.png、L3610-1612.png のように名前をつけます (文字は頭に付けてください)。 この3段階程度でちょうど良い感じです。必要なければ2段階でもどれか1つだけでももちろんOKです。

    作業には何を使ってもかまいませんが、画質劣化には注意が必要です。今回は下記「藤」を使用。

  • 藤 -Resizer- http://www.vector.co.jp/soft/win95/art/se132646.html
  • お好みで、png画像をレタッチ。私は別のソフトで、縮小したpng画像のコントラストを上げています。

    5. 256×256ピクセルのタイルに分割

    それぞれの画像を256×256ピクセルの画像「タイル」に分割します (1024×1024 の画像は4×4=16枚、2048×2048 は 8×8=64枚、4096×4096 は 16×16=256枚 に分割)。 それぞれ、gpsVPのレベルで15、16、17(Googleだと14、15、16)になります。

    この作業には「分割結合」を使います。分割された画像に連番が付き、ファイル名と同名のフォルダの中に入ります。 連番の付き方などが重要なので、次項 6. のツールを使うときは、このソフトの 使用がほぼ必須です。

  • 分割結合「あ」 http://www.vector.co.jp/soft/winnt/art/se346589.html
  • 6. タイル画像のリネームと移動

    画像ファイルの名前から、タイル座標を計算して、画像ファイルの名前に埋め込み、 x座標が同じタイルをそれぞれのフォルダに集める作業です。

    エクセルと併用するリネームソフトなどを使っても可能ですが、間違いやすく手間も大変なので、専用ツールを作りました。 Windows専用です。 デスクトップなどにこのexeファイルを置き、そのアイコンの上に画像が(16, 64 または256)入ったフォルダをドロップしてください。 処理が終わると、ドロップしたフォルダの中に、"x=・・・" というフォルダが複数ができて、その中にリネームされたファイルが入っているはずです。

  • リネーム・移動ツール"xyz.exe" ダウンロード
  • 終わったら、元のフォルダの名前をそれぞれ Level=15、Level=16、Level=17と変更しておきます。
    例:16枚画像が入ったフォルダ "T3610-1612" は "Level=15" にする。座標の数字は入れない。

    7. gpsVPのキャッシュへ転送

    先に作った.iniファイルの名前(例:"GSImap")のフォルダがgpsVPのキャッシュのある場所にできているはずなので、 6. でできた3つのフォルダをコピーして終了です(やれやれ)。 これでメニューから、Maps - Raster maps - Raster map type の中の "GSImap" を選べば地形図が出るはずです(場所とレベルにご注意)。

    なお、フォルダの構造はGoogle maps がキャッシュされるgmapフォルダなどと全く同じです。 ですので、レベル15から17以外のタイルをgmapフォルダなどからそのままコピーしてくれば、 Raster map type を変更しなくても、地形図と連続してそのまま表示させられます。

    おわりに

    各ソフト作者様には本当に感謝しています。ありがとうございます。 また、多数のページ等を参考にさせていただきましたが、ご紹介は別の機会にと思います。 なにかありましたらご連絡ください。


    公開: 2010/06/22