Google Earthの代替オープンソース -- World Wind

Googleのプロジェクトの中でGoogle EarthほどLinuxユーザーの羨望をかき立てたものはなかった。いくつかの点から検索エンジンbehemothは完全にOS不可知なはずだが、3D仮想地球儀は相変わらずWindowsデスクトップでしか使えない。しかし、代替品がある。NASAのWorld Windプロジェクトだ。

Google Earthと似た3D惑星視覚化システムで、人工衛星の撮影した画像、天気予報、行政、地形などのマップデータを重ねて表示する。例えば、ズームインして子供時代に住んでいた家を探したり、お気に入りのランドマーク上空を飛行する、海岸線を調査して大陸移動説を検証するなど、一通りのことができる。唯一の違いと言えば、World Windはオープンソースであることだ。

覚えているかもしれないが、Google Earthは、元々はKeyhole, Inc.のEarthviewerという製品だった。これは主に1年から2年前の商用衛星画像に頼っている。Keyholeが設立されたのは2001年、同社が最初の製品を発表したのは2003年、そしてGoogleに買収されたのは2004年10月だ。Earthviewer 3Dは5月にGoogle Earthへと姿を変え、3タイプの統一小売価格で登場した。無料(基本タイプ)、年間20ドル(”Plus”)、年間400ドル(”Pro”)である。

Google Earthは3DツールキットとしてOpenGLとDirectXのどちらも使用できる。System Requirementsのページには、Mac OS Xネイティブ版を開発中と暫く書かれていた。なお、企業向けパッケージに含まれるGoogle Earth Fusionコンポーネントは既にLinuxで動いている。

これらの事実を総合すると、Linuxへの移植は技術的に可能で、ひょっとするとGoogleplexの秘密研究所でそれが進行しているかもしれない。

無論、ここには問題がある。Linux/NetBSD/Plan9への移植が技術的に可能でも、我々は何もできない。また、GoogleはKML(Keyhole Markup Language)の仕様を公開したが、これについてもプログラマがクライアントやサーバーのソースコードにアクセスできないので新しい機能を追加できない。

World Windの歴史

対照的にWorld Windはオープンソースであり、すぐ入手できるが、洗練さの点でGoogle Earthに一歩譲るようだ。主画像データはLandsat 7から送られてくるものを用いており、Keyholeの商用衛星画像ほど解像度は高くない。一方、このプロジェクトのバックグラウンドが科学的な視覚化にある点は重要で、より複雑な仕事に対応でき、遙かに多くのデータソースが組み込まれている。World Windのサイトには以下が列挙されている。

  • Blue Marble – 地球全体の高解像度合成写真
  • Landsat 7 – 主衛星画像モザイク(可視光以外のデータも含む)
  • STRM (Shuttle Radar Topography Mission) – 高度データを含む地形図
  • NASA SVS (Scientific Visualization Studio) – 地球の自然科学現象のアニメーション
  • MODIS (Moderate Resolution Imaging Spectroradiometer) – 野火、嵐、火山といった事象の時系列表示
  • USGS (United States Geographical Survey) – 米国地域の高解像度画像
  • GLOBE (Global Learning and Observations to Benefit the Environment) – 教育現場の協力者による測定データをまとめたもの

World Windプロジェクトは2002年にNASA Learning Technologiesで開始された。同研究所はNASAのデータを提供する教育ソフトウェアの開発を目的としている。プロジェクトの広報担当官Randy Kimによれば、当初はOpenGLを使用してLinuxとWindowsで動かすつもりだったが、視覚化の実装段階でトラブルが生じたため、概念実証コードはC#とDirectXを用いて開発し、World Wind 1.0という名前で発表したという。最初の一般公開版は、NASA Open Source Agreementのもとで、2004年8月初旬に発表された。

最新版(1.3.2)は.NetベースなのでMonoで動くはずだが、DirectXがWindows以外のプラットフォームへの移植の障害となっている。しかし、オープンソース開発者の関心はまだ冷めていない。

我々にもできる

World Windのコードは単純明快で、タイルの座標をサーバーに要求し、クライアント側で結果を合成し、指定された順序と不透明度で各レイヤをレンダリングするだけだ(KeyholeとGoogle Earthはマップデータの合成をサーバー側で行う)。それゆえ、サードパーティのプログラマによって開発された最初のアドオンがOneEarthだったというのは驚くに当たらない。このプラグインを使用すると、WMS(Web Map Service)標準に従う任意のマップサーバーに対して、クライアントがデータを要求できるようになる。

Google Earthと飾りっ気のないWorld WindはどちらもGPSインタフェースを持たないが、サードパーティの開発者たちがWorld Wind用のGPS Trackerというプラグインを開発した。World Wind Centralを見ると、情報オーバーレイのマップパックから新機能まで、多数のアドオン、スクリプト、プラグインが掲載されているが、これらはいずれもまだWindowsで動くものばかりだ。

LinuxとMac OS Xへの移植の話がWorld Windのフォーラムで出始めたのは2004年9月初旬だったが、2005年6月までにロシアのプログラマVitaliy Pronkinは痺れを切らして自分でさっさと事を運んでしまった。

Pronkinはゼロから独自のクライアント、WW2Dを開発した。これは特定のLinuxビルドを対象とせず、単一のコードベースで全プラットフォームをカバーすることを目指している。当初はJavaで開発を始めたが、結局C++とWxWidgetsツールキットに切り替えた。WW2DはOpenGLを使用して画面上に画像レイヤを生成する。その名が示すとおり、2次元にのみ対応する。

最新バージョンは0.99.5で、NASAのWorld Windと同じコア・データサービスをサポートする。Pronkinによれば、任意のWMSサービスへの対応とアドオンの追加を予定しており、さらにナビゲーション・ツールとユーザー・インタフェースを改善するそうである。3Dのサポートも予定している。初期の作業にこれを含めなかったのは、時間が足りなかったことと、2Dマップでともあれ実用になったからである。

WW2Dのバイナリとソースのダウンロード は、BerliOSプロジェクトのページから行うことができる。当面、Pronkinは現在のバージョンの安定化に専念するつもりで、CPUとメモリの使用率を下げることを目指している。マンパワーが必要なところはどこかと訊ねたところ、「テスト、ドキュメント、アドオンなどだ。クロスプラットフォーム・アプリケーションに関心のある人がいればよいけど(既にあるWindowsばかりのNASA [World Wind] に3DとGEを加えてもずっとよい姿が見えてくる)」との答えであった。

CVS版のWW2Dをコンパイルしてみた。PronkinやWW2Dフォーラムの人々の機転や支援に助けられながらも、実によくできたアプリケーションであることを確かめることができた。Google Earthに称賛が集まっているものの、Mac OS X、Linux、その他OSのクライアントがいつ実現するかはいまだ見えないので、現段階では比較のしようがない。

さて、今後の推移はどうなるか。今日の昼にもGoogleが新しいクライアント・ソフトウェアを発表するかもしれない。もしそうなったら、問題は気のあるサードパーティが、それと連携して動く独自のクライアント/サーバー・アプリケーションを自由に作ることができるかどうかだ。仮にGoogleが新しいクライアントを発表し、かつソースを公開した場合、Google EarthとWorld Windの戦いは機能と拡張性をめぐるものになるだろう。この点に関してWorld Windは12カ月先行している。

まあ、どこかの時点でGoogleはGoogle Earthをオープンソース化するかもしれない。たぶんね。だけど、今ここにWorld Windがあるのに、どうして待つ必要があるだろう?

原文