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 APIをRuby上で取り扱うことが出来るようになります。
次に、
>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での表示が切り替われば成功です。場所は日本どこかです。岡山のあたりでしょうか。
(つづく?)
MacOS Xでやる方法はない?
Macはよく分からないのですが、GoogleEarth,AppleScriptで検索すると幸せになれるかもしれません。 あと、書き忘れていたことを一つ。GoogleEarth COM APIのリファレンスは以下のURLから参照するこ...
Googleで検索すると増田の日記がトップに来るね^^;