GPSの位置データを表示できる地図ソフトViking

 Vikingは、GPS(Global Positioning System:全地球測位システム)から目的の地点や経路のデータをインポートして編集できるオープンソース・アプリケーションだ。Googleマップ、Terraserver、OpenStreetMap、NASAのBlueMarbleの地図タイル画像と重ね合わせて地点や経路を表示できるため、自分の位置や動きを確認できる。

 Vikingは、openSUSE 11およびFedora 9では1-Clickインストールで利用でき、Ubuntu Hardy用のパッケージもある。私はi386のFedora 9マシンでソースからViking 0.9.6をビルドした。動作要件のページには説明がないが、libgpsをインストールしていないと構成の段階でエラーになる。エラー・メッセージによると、GPSの追跡機能を利用しない場合には、configureを呼び出すときに「--disable-realtime-gps-tracking」と指定することでこのエラーを回避できる。

 libgpsは、単独のパッケージの場合と、gpsdパッケージの一部として含まれている場合とがあり、使用するディストリビューションによって異なる。Ubuntu Hardyの場合はlibgps-devを使用し、openSUSE 11の場合はgps-develに含まれている。Fedora 9の場合は標準リポジトリにgpsd-develとして含まれている。該当する開発パッケージをインストールするか、configureで無効にすると、「make; sudo make install」という通常の手順でビルドを完了できる。

viking1_thumb.jpg
Viking

 Vikingのメイン画面は、左側がレイヤ構成とその内容を示すツリー表示で、中央および右側がマップ表示だ。左側のツリー表示で上にあるレイヤほど、マップでは後から描画される。経路とウェイポイントを表示するレイヤは、階層構造の中のどこにあるかに関係なく、地図データを示す各レイヤよりも常に上に描画される。経路とウェイポイントを表示したくない場合は、左側のレイヤ・ツリーで非表示にできる。

 地図レイヤを右クリックすると、データ・ソースを変更したり、アルファ値を調整して地図を半透明にしたりできる。また、メイン画面で地図をスクロールまたはズームしたときにそのレイヤの地図タイルを自動でダウンロードするかどうかも指定できる。自動ダウンロードを行わない場合は、地図レイヤを右クリックして[Download Onscreen Maps]を選択し、現在の位置およびズーム・レベルに応じた画像を明示的にダウンロードする必要がある。地図レイヤを右クリックして[Refresh Onscreen Tiles]を選択すると、現在表示しているタイルをダウンロードし直すことができる。

 地図レイヤを作成したら、[View]メニューの[Go To Google Maps Location]を選択して、目的の位置を中心とした地図を手動で表示できる。地図表示を操作するときに主に使用する機能は、ウィンドウ上部のツールバーの中央部分に表示されている[Pan]、[Zoom]、[Ruler]の3つだ。[Pan]では、地図をつかんでドラッグで移動できる。[Zoom]では、地図上をクリックしてその場所にズームインしたり、地図上を右クリックしてズームアウトしたりできる。任意の場所でCtrlキーを押しながらプラス(+)キーまたはマイナス(-)キーを押すと、ホットキーによるズームイン/ズームアウトも可能だ。[Ruler]では、最初にクリックした場所を中心としたコンパスを配置し、マウスの動きを追跡できる。もう1度クリックすると追跡が終了する。追跡が続く間は、最初にクリックした位置からの距離と角度が常に示される。左クリックで追跡を開始した後、右クリックを行うと、追跡を継続したままで地図表示の中央位置を変更できる。計測したい場所が画面の範囲外にある場合に便利だ。

 地図やウェイポイントを示す上記のレイヤ以外にも、Vikingはさまざまな種類のレイヤをサポートしている。複数のレイヤを1つの“親レイヤ”に取りまとめた集約レイヤを作成することも可能だ。集約レイヤでは、グループ化した親レイヤの表示設定を変えることで、多数のレイヤの表示/非表示をまとめて切り替えることができる。

 座標レイヤを作成すると、地図上にグリッドを重ねて表示できる。地図上の2点間の距離をざっくりと測るときにはグリッドが便利だ。座標レイヤを新規作成するときには、グリッドの線の幅、線の色、およびグリッドの各セルの大きさを設定できる。残念ながら、セルの大きさの値を複数使っても、サイズが異なる2つのグリッドを作成することはできなかった。

 GPSレイヤを作成することもできる。GPSレイヤでは、gpsdデーモンか、シリアルポートまたはUSBポートに接続したGPSデバイスとの間で、GarminまたはMagellanのデータ形式を使って情報をやり取りできる。gpsdを使用する場合、経路を記録したり、起動時にGPSの現在位置に移動したり、GPSの現在位置を常に画面中央に表示したりといったことが可能だ。gpsdが動作するホストとポートは指定できる。

 追加できる中には、Digital Elevation Model(DEM)レイヤもある。名前にElevation(高度)と入っていることからもわかるように、標高や勾配を知ることができるレイヤだ。データの正確さは、使用するDEMデータソースに応じて変わる。

 私が試したときには、Googleマップをそのままか半透明で表示するレイヤを追加しようとすると、Googleのサーバーから地図をダウンロードできないというエラーがコンソールに表示されてしまった。また、Googleの衛星写真の画像はダウンロードできたが、1kmまでの単位が凡例に示される縮尺で表示しているときには、地図画像のダウンロードがエラーになるか、現在の地図表示領域から外れた右上にダウンロードされてしまう結果となった。一方、OpenStreetMapのデータを使用するときには、そのような問題は発生せず、地図タイルの自動ダウンロードも正常に動作した。

 Vikingの[File]メニューには[Generate Image File]という項目がある。現在表示している地図をPNGファイルまたはJPEGファイルとして保存できるというものだ。私は、OpenStreetMapレイヤを表示しているときに、地図タイルのダウンロードを自動に設定した状態で、いくつか画像を保存してみた。デフォルトのオプションで最初に作成した画像は問題なかったのだが、2回目に解像度をデフォルトより大きく指定してみたところ、必要な地図タイルが自動でダウンロードされなかった。3回目に、ピクセルあたりのメートル数の設定をデフォルトの半分にしてみたところ、必要なタイルをすべて含んだ画像が作成された。つまり、ズーム・レベル(ピクセルあたりのメートル数)を変更した場合には、必要なタイルがすべてダウンロードされるが、デフォルトより大きなイメージ・ファイルを作成するよう選択した場合には、タイルの一部がダウンロードされないことがあるようだ。

 メニュー項目の[Preferences]は機能しないようで、設定ダイアログの類は表示されなかった。ファイルのアクセス権の問題かと思い、rootでVikingを実行してみたが、動作は変わらなかった。未実装の機能であるのなら、この機能はまだTODOリストに入っています、という旨のメッセージを小さなダイアログボックスで知らせてくれる方が親切だと思う。

 ウェイポイントを誤って配置した場合には、ドラッグで簡単に移動できる。地図上に大ざっぱに配置してからズームインするという使い方も可能だ。一方、経路に含まれる点をドラッグして編集する方法はわからなかった。[Edit Trackpoint]を選択してから、経路の中の点をクリックし、緯度と経度の数値をプロパティ・ダイアログで指定して位置を調整することはできるが、ウェイポイントのようにドラッグで直接動かすことは、現在のバージョンではできないようだ。

 若干荒削りな面はあるが、経路の表示とウェイポイント・データの編集を行うときや、目的の地域がOpenStreetMapでカバーされている場合には、Vikingは便利だ。ただしGoogleマップを使用する場合は、地図タイルを使用するときに問題が生じることがあるかもしれない。

Ben Martinは10年越しでファイルシステムと取り組んできた。博士課程終了。現在、libferris、ファイルシステム、サーチソリューションを中心にコンサルタント業務を展開している。

Linux.com 原文(2008年9月4日)