> 웹 프론트엔드 > JS 튜토리얼 > Google Maps JS API v3을 사용하여 InfoWindows에서 여러 마커를 표시하는 방법은 무엇입니까?

Google Maps JS API v3을 사용하여 InfoWindows에서 여러 마커를 표시하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-20 15:45:10
원래의
761명이 탐색했습니다.

How to Display Multiple Markers with InfoWindows using the Google Maps JS API v3?

Google Maps JS API v3 - 간단한 다중 마커 예

지도 및 마커 만들기

시작하려면 새 HTML 파일을 만들고 API 키와 함께 Google Maps API 스크립트를 포함하세요. 다음으로, 지도 개체를 설정하고 필요한 매개변수를 제공합니다.

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(-33.92, 151.25),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});
로그인 후 복사

InfoWindow 만들기

위치 이름을 표시하는 InfoWindow 개체를 정의합니다. 마커 클릭:

var infowindow = new google.maps.InfoWindow();
로그인 후 복사

위치 반복 데이터

다음으로 데이터 배열을 반복하고 각 위치에 대한 마커를 생성하여 지도에 추가합니다.

for (i = 0; i < locations.length; i++) {  
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    map: map
  });
로그인 후 복사

InfoWindows용 클릭 이벤트 설정

마지막으로 다음과 같은 경우 InfoWindow가 열리도록 트리거하는 각 마커에 이벤트 리스너를 추가합니다. 클릭:

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}
로그인 후 복사

전체 코드

전체 코드는 다음과 같습니다.

var locations = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(-33.92, 151.25),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var infowindow = new google.maps.InfoWindow();

var marker, i;

for (i = 0; i < locations.length; i++) {  
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    map: map
  });

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}
로그인 후 복사

위 내용은 Google Maps JS API v3을 사용하여 InfoWindows에서 여러 마커를 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿