이벤트 및 사용자 상호작용 처리

LocalContextMapView 인스턴스 및 내부 지도 모두에서 이벤트를 처리할 수 있습니다. LocalContextMapView는 사용자가 장소 세부정보 뷰를 열어 장소를 선택할 때와 사용자가 장소 세부정보 뷰를 닫을 때 실행되는 두 가지 이벤트만 지원합니다. 이러한 이벤트를 사용하면 어떤 UI 요소든지 업데이트할 수 있습니다.

  • 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는 또한 Esc 키를 누를 때 장소 세부정보 뷰 또는 사진 라이트박스를 닫습니다. 이 동작을 변경하려면 캡처 단계의 키 누름 이벤트 및 Esc 키에 대한 리스너를 창 객체에 추가하여 기본 동작을 가로채는 것이 좋습니다.

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

또는 코드가 실행되기 전에 LocalContextMapView가 키보드 이벤트를 처리할 수 있도록 버블 단계의 창에서 키 누름 리스너를 등록하세요.

// 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의 이벤트에 대해 자세히 알아보세요.