Обработка пользовательских действий и событий

События можно обрабатывать как в экземпляре LocalContextMapView, так и на внутренней карте. LocalContextMapView поддерживает только два типа событий, которые активируются при выборе места (когда пользователь открывает окно с информацией о месте или закрывает его). С помощью таких событий можно обновить любой элемент пользовательского интерфейса.

  • placedetailsviewshowstart срабатывает, когда пользователь выбирает место, перед тем как появляется информация о нем;
  • placedetailsviewhidestart срабатывает, когда пользователь закрывает окно с информацией о месте, перед тем как это окно исчезает.

В примере ниже показана настройка обоих поддерживаемых типов прослушивателей в экземпляре LocalContextMapView (вы можете сделать это в своей функции initMap()):

// Set the LocalContextMapView event handlers.
localContextMapView.addListener('placedetailsviewshowstart', () => {
  console.log("The 'placedetailsviewshowstart' event just fired!");
});

localContextMapView.addListener('placedetailsviewhidestart', () => {
  console.log("The 'placedetailsviewhidestart' event just fired!");
});

Также вы можете обрабатывать события на карте, созданной из LocalContextMapView. В примере ниже показан обработчик событий, который активируется, когда карта регистрирует наведение курсора мыши:

// Set a mouseover event handler on the inner map.
localContextMapView.map.addListener('mouseover', () => {
  console.log("The mouse just entered the map!");
});

LocalContextMapView также закрывает окно с информацией о месте или фотографиями при нажати кнопки Escape. Если вы хотите изменить это поведение, добавьте в объект окна прослушиватель для события keydown и клавиши Escape на этапе ввода, блокирующий реакцию интерфейса по умолчанию:

// Change the escape key behavior.
window.addEventListener('keydown', event => {
  if (event.key !== 'Escape') return;
  event.stopPropagation();
  // Handle the event.
  // ...
}, /* useCapture= */ true);

Другой вариант – разрешить LocalContextMapView обрабатывать события keyboard раньше, чем ваш код, добавив в окно прослушиватель keydown на фазе всплытия:

// Won't be fired if LocalContextMapView handled the escape key to close
// the place details view or photo lightbox:
window.addEventListener('keydown', event => {
  if (event.key !== 'Escape') return;
  // Handle the event.
  // ...
}, /* useCapture= */ false);

Дополнительная информация

  • Посмотрите, как события работают на карте. Ознакомьтесь с примерами стандартного использования библиотеки локального контекста и особенностями их реализации.
  • Узнайте больше о событиях из документации по Maps JavaScript API.