GoogleEarth?を外部プログラムから制御する

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

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

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

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

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

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

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

COMという考え方

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

COM.png

添付ファイル: fileCOM.png 1179件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-23 (火) 17:02:43 (5170d)