プロアトラスW3の地図をqpeGPSで利用
市街地から離れた自然豊かなところでGPSを利用する場合は5万分の1地形図などがよいが、街中では様々な情報が付加された地図の方が便利だろう。そこで、市販のPC用地図ソフトとして定評あるアルプス社のプロアトラス(最新版はプロアトラスW3)の地図をqpeGPSで利用する方法を考える。
プロアトラスW3にはPDA用に地図を切り出す機能があるが、切り出した画像ファイルは独自の形式(拡張子がBLR)となり、PDA上で動作する専用ソフト(プロアトラス Lite PDA)でのみ利用可能となっている。同ソフトの対応機種にSL系ザウルスは含まれていない。そこでBLR形式の地図画像をqpeGPSなど他のソフトで利用する方法を模索する。WEBを検索するとさっそく見つかった。ここでは先人の知恵と努力の成果を拝借することにする。大いに役立ったのは伊藤氏のYoshiharu ITO WWW page。この中の『アルプス社アトラスシリーズについて』、『フォーマット変換ユーティリティblr2ppm,
blr2bmp』がそのものズバリである(氏に感謝)。そのサイトに掲載されているC言語ソースコード
blr2ppm.c は UNIX環境での利用を想定しているようだが、Windows上でも実行できれば便利である。ここでは、コンパイラとして
Borland C++ 5.5.1 を使用し、WindowsのDOS窓から実行可能なバイナリを作成する。
ソースファイルの変更 (C言語の知識が多少必要)
- あらかじめ漢字コードをSHIFT-JISにしておく。
- 実行ファイル名で出力ファイルの形式(PPMかBMPか)を選ぶようになっているが、以下のようにBMPに決め打ち。
write_rtn = data_bmp_write; /* main関数内 */
- getopt()を含む while文をごっそり削除。(getopt()をどこからか調達できればそのままでもよい)
- argc, argv の更新部分も削除。
- 残った argv[0] の部分(2か所)を argv[1] に変更。
- #include <unistd.h>を削除。
- 上記の変更を施したソースファイルを blr2bmp.c として保存しておく。
コンパイル(実際はbzlib(bzip2)は不要。下の追記を参照)
- bzip2のソースコード bzip2-1.0.2.tar.gz を以下のサイトから取得。
http://sources.redhat.com/bzip2/
- アーカイブを展開後、ソースファイル bzlib.h, bzlib_private.h, bzlib.c, compress.c,
huffman.c, blocksort.c, crctable.c, randtable.c, decompress.c を blr2bmp.c
と同じディレクトリに入れる。
- 以下のようにコンパイル&リンク。
bcc32 -O -c bzlib.c
bcc32 -O -c compress.c
bcc32 -O -c huffman.c
bcc32 -O -c blocksort.c
bcc32 -O -c crctable.c
bcc32 -O -c randtable.c
bcc32 -O -c decompress.c
bcc32 -O blr2bmp.c bzlib.obj compress.obj huffman.obj blocksort.obj crctable.obj
randtable.obj decompress.obj
- これで blr2bmp.exe の出来上がり。
地図画像の切り出し
- プロアトラスW3を起動する。目的の地図を表示させておき、ツールバーから『地図をPDA用に切り出し』を選択する。
- 切り出し範囲を『画面の中心から最大の範囲』とすれば、2400×2400ピクセルの地図画像ファイル(BLR形式)が出力されるようだ。
- DOS窓から以下ようにコマンドを実行。
blr2bmp xxxx.blr > xxxx.bmp
無事に変換できた。新版のW3でもBLRファイルの形式は変更されていないようだ。
- 出力されたBMPファイルをPNG形式に変換。
試しにこのサイズ(2400×2400)のままSL-A300に置き、qoeGPSで読み込ませようとしてみたがメモリ不足となった。もっと小さく分割する必要がある。BMPファイルをカシミール3Dの地図として登録し、マップカッターで再度切り出す方法もあり得る。
まとめ
上記の方法はちょっと面倒である。
カシミール3Dからプロアトラスを利用する『プロミール』というソフトもあるらしいが・・・
追記(2004-08-29)
blr2ppm/blr2bmp の作者 伊藤氏より「プロアトラスからPDA用に切り出したBLRフォーマットはアトラス
RD for Windws 95 形式となっているため、変換の際に bzlib は不要」とのコメントをいただいた。つまりコンパイルはもっと簡単になる。ソースコード中の
#define USE_BZ2
を無効にすれば上述の bzip2 関連の作業は不要となり、
bcc32 -O blr2bmp.c
だけで実行ファイルを生成できる。
戻る