- GoogleEarthを自作プログラムから制御する(GoogleEarth COM API)
-- [[GoogleEarthCOMAPIの仕組]]
-- [[GoogleEarthCOMAPIの使い方(導入法)]]

* GoogleEarthを外部プログラムから制御する [#d8fc360b]

知っての通りGoogleEarthはGoogleから提供されている地球規模地図アプリケーションであり,KMLファイルというxml形式で記述されたデータをロードさせることで,地図上に様々な情報を表示することができる.表示方法は,例えば

- プレイスマーク(目印),バルーン(文章や画像による注釈)
- イメージオーバーレイ(画像の重畳)
- 3Dポリゴンの追加
- ネットワークリンクの設定

などが挙げられる.このような機能を利用すると,旅行記や人口分布図などを作成することもできる.良く似たサービスにGoogleMapがあるが,

- 表示方法が多岐にわたる(利用視点)
- Webサービスではないのでオフラインでも使用できる(仕組視点)

という点で異なると私は考えている.厳密に言うと地図データは外部Webサーバからダウンロードしているし,GoogleEarthAPI(COM-APIではない!)を使うことでブラウザ上で制御することもできるので,完全にオフラインなアプリケーションではないが,ここでは地図情報は事前に入手しており,オフラインで動作することを前提に話を進める.

ここで,一般利用者であれば「GoogleEarth楽しい」「GoogleEarth便利」となるのであろうが,我々研究者は少し観点が異なる.すなわち,情報技術研究におけるインターフェースとして利用できないか,と考える.それはGoogleEarth単体の機能で十分に達成できる場合もあるが,もう一歩踏み込んで「他のアプリケーションと連動させる」ことができればもっと様々な利用法が創出される.

....長くなったが要は,外部プログラムからGoogleEarthを制御しようというわけである.

* COMという考え方 [#bff5548a]

GoogleEarthはCOMに基づいて構成されている.COMとはComponentObjectModelの略でMicrosoftが提唱している言語非依存なプログラム構成規約を指す.種々の言語を共通のプラットフォームで扱うための取り決めと考えてよい.GoogleEarthはCOMに則って制御用APIを公開しているため,COMに準拠した形で外部から制御できるわけである.具体的には自作の外部プログラム側でCOMインターフェースを用意して,GoogleEathに対してAPI呼び出しをかける仕組みである(図参照).さて,ここで気がついたかもしれないが,COMはMicrosoftが提唱しているので(当然)Windows依存な概念である.すなわちLinux(UNIX)のような他のOSではCOM経由で制御することはできない.Linux用GoogleEarthも配布されているがWine上で動作しているのが実際であるから,結局はWindows依存なバイナリなのである.というわけで(不本意ながら)以降はWindowsを前提に話を進める.

#ref(./COM.png,50%)
#ref(./COM.png,center,50%)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS