захват события клика в плагине Google Планета Земля - PullRequest
0 голосов
/ 02 марта 2011

Используя плагин Google Планета Земля в C #, я хочу получить щелчок позиции на земле; как я могу это сделать?

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);

Теперь я хочу добавить прослушиватель события Click, который я хочу получить событие click.

Как это можно сделать?

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Проблема в том, что стандартные обработчики событий являются частью пространства имен google.earth и не доступны напрямую через управляемый код. Вам необходимо «передать» события в ваше приложение через JavaScript и видимый COM-класс.

Я разработал бесплатную управляющую библиотеку, которая позволяет вам легко встраивать плагин Google Earth в приложение.

Он поддерживает функции AddEventListner и RemoveEventListner, которые вы ищете http://code.google.com/p/winforms-geplugin-control-library/wiki/AddEventListener

Стоит отметить, что он не использует, как в вашем примере, библиотеку типов GEPlugin - скорее динамический тип в C # 4.0. Это означает, что он не «зависит от версии» определенной версии плагина Google Планета Земля

Основной проект здесь http://code.google.com/p/winforms-geplugin-control-library/

1 голос
/ 02 марта 2011

EDIT

GEWebBrowser наследуется от стандарт System.Windows.Forms.WebBrowser класс управления и имеет ту же базу члены, методы, свойства и события.

Из-за этого вам необходимо вручную создать двунаправленную связь между этим элементом управления и вашим классом C #.

В этой статье рассказывается, как подключить C # к событиям javascript в элементе управления браузера. http://support.microsoft.com/kb/312777

Кроме того, вы можете найти следующий метод C # полезным для добавления событий javascript в GEWebBrowser.

Void AddEventListener (объект, строка, строка)

Оболочка для метода google.earth.addEventListener

Параметры

объект: целевой подключаемый модуль Api

строка: идентификатор события

строка: имя функции обратного вызова javascript для использования

пример: GEWebBrowser.AddEventListener (object, "click", "function (event) {alert (event.getType ());}");

Источник: http://code.google.com/p/winforms-geplugin-control-library/wiki/GEWebBrowser


Не совсем уверен, но, возможно, одна из этих ссылок поможет вам.

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

...