Контекстное меню плагина Google Планета Земля - PullRequest
1 голос
/ 28 марта 2012

Я использовал плагин Google Планета Земля для создания определенных функций, и одна из вещей, которые я хотел бы сделать, - это создать собственное контекстное меню поверх GE.

Кто-нибудь делал это?Любая помощь с благодарностью.

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Этого можно достичь, прослушивая событие mouseup или click, а затем используя метод наложения shim для отображения пользовательского контекстного меню.

Код для прослушивателя событий будет выглядеть примерно так:

// Listen for all mouseup events in the plugin.
// Where 'ge' is an instance of the GEPlugin
google.earth.addEventListener(ge.getWindow(), 'mouseup', eventHandler);

Обработчик события будет выглядеть примерно так:

// Handles mouseup events (e is a KmlMouseEvent)
var eventHandler = function(e)
{
  // if it is a right-click 
  if (e && e.getButton() == 2)
  {
    event.preventDefault(); // optional, depending on your requirements
    event.stopPropagation(); // optional, depending on your requirements
    openMenu(e.getScreenX(), e.getScreenY());
  }
}

Наконец, код для открытия пользовательского меню будет выглядеть примерно так:

// Insert a custom iframe at the x, y screen position 
var openMenu = function(x, y)
{
  var iframe = document.createElement('iframe');
  iframe.frameBorder = 0;
  iframe.scrolling = 'no';
  iframe.style.position = 'absolute';

  // build the menu as you require...
  // then position and show it.
  iframe.style.left = x + 'px'; 
  iframe.style.top = y + 'px'; // you may want to offset the position...

  document.body.appendChild(iframe ); // show the menu
}

Очевидно, что вы помещаете в меню и как вы его стилизуете.Вы также, вероятно, захотите скрыть это тоже, это будет просто случай удаления iframe - возможно, в другом слушателе пунктов меню (например, когда вы щелкаете элемент меню, меню исчезает)

Если вы получаетеЗастрял здесь отличный справочник для работы с событиями.https://developers.google.com/earth/documentation/events

Кроме того, вот рабочий пример использования технологии iframe shim: http://earth -api-samples.googlecode.com / svn / trunk / demos / customcontrols / index.html

1 голос
/ 29 марта 2012

В настоящее время вам нужно использовать IFRAME SHIMS.Надеюсь, это изменится однажды.

Посмотрите на этой странице пример http://earth -api-samples.googlecode.com / svn / trunk / demos / customcontrols / index.html

и проверьте этот другой вопрос на SO для получения дополнительной информации Как я могу разместить HTML-div над плагином Google Планета Земля?Включает wmode, я думаю,

Если вам интересно, вы можете увидеть мою веб-страницу, которая использует прокладки iframe над Google Earth здесь http://www.3dwhistler.com/

...