Windows Mobile 用の GPS 地図 - Part 12009/08/07 20:20

夏休み、旅の季節です。
レンタカーを借りて出掛ける機会があり、ポータブルナビがあると便利なので、Omnia か Viliv でナビ機能を実現しようと考えました。

まず、Viliv で実現するのはやめました。Viliv S5 の I-Log には GPS が無い、というのもあるのですが、いくら小さくて 6時間動くからといっても、運転しながら、さらに旅先で持ち運んで、というシナリオを考えると、開放的な旅が逆に面倒くさいことになりそうで、やめです。

よってターゲットは Omnia に決定。小さいし、いざというとき HSDPA できるし、電池はもっと持つし、こういうときは Windows Mobile です。

さて、ではどのソフトで実現するか。
HSDPA にて Google map をつかうのはお金的にも現実的ではありません。やはり offline でできるのが良い。電波は常に届くとも限らないし。

定番はスーパーマップルデジタル。全国版の地図で、Windows Mobile でも使え、PC でルート検索してそのデータを Windows Mobile に持って行けば Windows Mobile でルート案内をしてくれるという優れ物。しかも一万円ちょっとという魅力的なお値段。

でも、自家用車にはナビがついてるし、車以外でそんなにナビって頻繁に使わないし、一万円ちょっとはねぇ....
機能的にはすごく安いと思うんだけど。

さて、ロハなのを探すか、といろいろ探してみる。インターネットってすごいね、と思う。なので恩返しでこちらも経験談やプログラムでも書いて公開しようっていうのが motivation。

1) gm_lite
http://tera-cc.ddo.jp/blog/2008/09/29/gm_lite-0.1.4%E5%85%AC%E9%96%8B/

2) Terracrosser
http://terracrosser.com/

まず gm_lite。Google map から任意の場所の地図をいろいろな解像度でダウンロードしてローカルに貯めておき、Browser で見るための、script 中心のダウンロードツール群と、browser 用 HTML/Javascript 群。
地図データは PNG で保存されるため、きれいな地図を少ないサイズで保存できる優れ物。ちなみに 16GB の microSDHC にデータを保存すると、FAT32 ではデフォルトクラスタサイズが 32KB のため、タイル的にダウンロードされる多量の地図画像の多くは 4KB 程度もしくはそれ以下であり、多量の slack が出、本来のメモリの 8分の1程度の容量しか使えないことに。よって microSDHC のクラスタサイズを 4KB でフォーマットし直して使っている。

問題なのが、GPS との連動機能。
Zaurus で使う場合、このプログラムを使う Zaurus での支援者がおり、作者からの GPS との連動する仕組み実装、また支援者からの GPS 連動用ビューア(地図のダウンロードは gm_lite を使う)が提供されていたりするが、Windows Mobile で GPS と連動させているという例は見当たらなかった。唯一近かったのが、mortscript をつかって実現する例。アドエスでの例。

http://mortscript.blogspot.com/2008/12/gmlitemortscript.html

naviClip って別のプログラムを使ってアドエスの位置情報を得、このかたが提供する mortscript 用 script で gm_lite で読み込めるデータに加工する。トッリッキーだけど、良い素材を何とか使いこなそうとする試みには共感を覚える。
ただ、これは「W-SIMから取得した位置情報」を使用するもので、Omnia では使えそうにない。だいたい Omnia には SIM は刺さっているが、通信はさせたくないというケチケチ作戦が前提。

gm_lite だと、日本全国の大まかな地図と東京のある程度のところまで持たせても 300MB 程度。良い素材だが、GPS との連動は既存のものでは一筋縄では達成できそうにない。
------

次に Terracrosser。こちらも Google map から地図をダウンロードしておき、専用の viewer で見る。Yahoo map も使える。ただしダウンロードサイトの関係で英語の地図となる。地図のダウンロードは PC で行い、viewer は Windows Mobile 版もある。ここまでパッケージとして完成度の高い物がロハとは驚きである。

残念なのが、地図は jpeg で保存され、gm_lite よりも相当大きなストレージ容量を必要とする。10倍は軽く大きい感じ。
jpeg の圧縮率を高めることで gm_lite の容量に近づけることは出来るが、なにせ道路等の境界線がミジミジになるのがいただけない。

あと、操作性もいまひとつ。サポート forum もあるので、このソフトはまだこれから成長するものだと思われる。
------

さて、どうする....
gm_lite は捨てがたい。どうしても使いたい。この地図の quality でロハだと、何とかしたい気分が高まる。
だが GPS のデータをどうやって gm_lite に食わせるか。Javascript の知識は無いのでトリックは使えそうにないが、
x = 緯度;
y = 経度;
という内容の ll.js というファイル経由で逐次 x/y 情報を渡してやる仕組みは備わっている。

やはり作るしかないですね。せっかく iPAQ 212 と一緒に Windows Mobile 用の code が吐ける Visual Studio 買ったんだし。

そこそこ良い物が出来たので、近いうちにアップします。