2011-03-01 18 views
0

Google EarthプラグインをC#で使用して、地球上のクリック位置を取得したいです。これどうやってするの?Google Earthプラグインでクリックイベントを取得する

using GEPlugin; 

m_ge = (IGEPlugin)pluginInstance; 
KmlLookAtCoClass lookAt = m_ge.createLookAt(""); 
lookAt.set(35.337919, 33.321576, 0, m_ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 5000); 

m_ge.getView().setAbstractView(lookAt); 

m_ge.getLayerRoot().enableLayerById(m_ge.LAYER_ROADS, 1); 

ここで、クリックイベントを取得したいクリックイベントリスナーを追加します。

どうすればいいですか?

答えて

1

EDIT

はGEWebBrowserは 標準 System.Windows.Forms.WebBrowserコントロールクラスから継承し、同じベース メンバー、メソッド、プロパティおよびイベント を有します。

このため、このコントロールとC#クラスの間で双方向通信を手動で作成する必要があります。

ブラウザコントロールでjavascriptイベントにC#を接続する方法については、この記事を参照してください。 http://support.microsoft.com/kb/312777

さらに、GEWebBrowserにJavaScriptイベントを追加するのに便利な次のC#メソッドがあります。

ボイドのaddEventListener(オブジェクト、文字列、 列)google.earth.addEventListener方法

パラメータの

ラッパー

対象:対象プラグインAPIオブジェクト

文字列:イベントID

列:

例を使用するJavaScriptのコールバック関数名:GEWebBrowser.AddEventListener(オブジェクト、 "クリック"、 "関数(イベント){アラート(event.getType());}")。

SRC:http://code.google.com/p/winforms-geplugin-control-library/wiki/GEWebBrowser


完全に確認してください、おそらくこれらのリンクの1つがあなたを助けるわけではありません。

http://fraserchapman.blogspot.com/2008/08/google-earth-plug-in-and-c.html

http://groups.google.com/group/google-earth-browser-plugin/browse_thread/thread/90dfb80960094828?pli=1

http://interactiveearth.blogspot.com/2008/01/create-your-own-google-earth.html

http://www.xtremevbtalk.com/showthread.php?t=287038

+0

であるGoogle Earthプラグインの特定のバージョン

の「バージョン依存」ではないことを意味します。 ge =インスタンス; ge.getWindow()。setVisibility(true); // mousemoveが地球上で検出されたときの動作を定義します。 var maxAlt = -1000000;関数recordAltitude(イベント){var currentAlt = event.getAltitude(); maxAlt = Math.max(maxAlt、currentAlt); document.getElementById( 'altitude')。innerHTML = '

現在の高度:' + currentAlt + '
最大高度:' + maxAlt + '

'; } //地球儀のmousemoveイベントを聞きます。 google.earth.addEventListener(ge.getGlobe()、 'mousemove'、recordAltitude);だから私は、ユーザーのaddEventListener Cで# – atromgame

1

問題は、標準のイベントハンドラがgoogle.earth名前空間の一部であり、マネージコードを経由して直接アクセスすることはできませんということです。 javascriptとCOM可視クラスを介してアプリケーションにイベントをリレーする必要があります。

Google Earthプラグインをアプリケーションに簡単に埋め込むことができる無料のコントロールライブラリを開発しました。

それはそれは、あなたの例のように、GEPluginタイプライブラリを使用していないことは注目に値するあなたが http://code.google.com/p/winforms-geplugin-control-library/wiki/AddEventListener

を探しているAddEventListnerとRemoveEventListner機能をサポートしています - むしろ動的な型をC#4.0に。いや、私はこのように使用し、Javaスクリプトのページでご覧ください主なプロジェクトはここ http://code.google.com/p/winforms-geplugin-control-library/

関連する問題