2007-07-24

GoogleEarthで遊ぼう

Ruby,Windows COM APIの知識がそれなりにあることを前提としています。あしからず

あと、用語の使い方は結構いい加減です。訂正ヨロ。

まずは、GoogleEarthをインストールしよう。http://earth.google.co.jp/ から無料ダウンロードできます。

次に、COM APIの登録。コマンドプロンプトで、GoogleEarthをインストールしたフォルダ(通常は、c:\Program Files\Google\Google Earth)に移動して次のコマンドを実行します(>は入力する必要はありません)。

>googleearth.exe /RegService

これを実行することによりCOM APIを介して外部から操作することが可能になります。

次にRubyの実行環境を整えます。が、説明が面倒なので省きます。ActiveScriptRubyでぐぐれ!

さて、ここから実際にGoogleEarthを動かしてみます。こういうときはirbが便利ですね。ActiveScriptRubyが正しくセットアップされていれば、デスクトップRuby Consoleというショートカットができているはずです。これを起動すると、Rubyパスが通った状態でコマンドプロンプトが起動するはずです。そこでirb(Enter)と入力してみましょう。

irb(main):001:0>

というふうに表示されればOKです。

どんどんいきましょう。irbで、

>require 'win32ole'

入力してください(>は入力しません。プロンプトがでているという意味お約束です)。これで、COM APIRuby上で取り扱うことが出来るようになります。

次に、

>ge = WIN32OLE.new('GoogleEarth.ApplicationGE')

入力しましょう。変数geがGoogleEarthのCOM APIインタフェースインスタンスになります。geのメソッドを呼び出すことによりGoogleEarthを操作します。GoogleEarthを起動していない場合、ここで起動されます。

では、いよいよGoogleEarthを動かします。GoogleEarthでは、視点情報をCameraと呼称しています。カメラを移動させるために、カメラ情報へのインタフェースを生成します。

>cam = WIN32OLE.new('GoogleEarth.CameraInfoGE')

この、camプロパティを設定することによりカメラ情報を設定することが出来ます。

>cam.FocusPointLatitude = 35.0
=>35.0
>cam.FocusPointLongitude = 135.0
=>135.0

実際に入力するのは、1行目と3行目です。Latitude:緯度、Longitude:経度です。緯度は赤道を中心として+90(北方向)から-90(南方向)の値をとります。経度は+180(東方向)から-180(西方向)の値をとります。日本の場合、どちらも+になります。

実際に視点を移動させるには、先ほどのgeのメソッドを呼び出します。

>ge.SetCamera(cam,1)

GoogleEarthでの表示が切り替われば成功です。場所は日本どこかです。岡山のあたりでしょうか。

(つづく?)

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん