[javascript] Google지도가 완전히로드되었는지 어떻게 확인할 수 있습니까?

웹 사이트에 Google지도를 삽입하고 있습니다. Google지도가로드되면 몇 가지 JavaScript 프로세스를 시작해야합니다.

타일 ​​다운로드 및 모두를 포함하여 Google지도가 완전히로드 된 시점을 자동 감지하는 방법이 있습니까?

tilesloaded()방법은 바로이 작업을 수행하기로되어 있지만되어있는 이 일을하지 않습니다 .



답변

이것은 GMaps v3에서 잠시 동안 귀찮게했습니다.

나는 이렇게하는 방법을 찾았다.

google.maps.event.addListenerOnce(map, 'idle', function(){
    // do something only the first time the map is loaded
});

“유휴”이벤트는지도가 유휴 상태 (로드 된 모든 항목 또는로드되지 않은 상태)가되면 트리거됩니다. 나는 tilesloaded / bounds_changed보다 더 신뢰할 만하다는 것을 알았고 addListenerOnce메서드를 사용 하여 클로저의 코드가 처음으로 “유휴”가 실행될 때 실행되고 이벤트가 분리되었습니다.

Google지도 참조 의 이벤트 섹션 도 참조하십시오 .


답변

나는 HTML5 모바일 애플 리케이션을 만드는거야 내가 그 눈치 idle, bounds_changed그리고 tilesloaded지도 객체가 생성되고 (표시되지 않은 경우에도) 렌더링 될 때 이벤트 화재.

지도가 처음 표시 될 때지도 실행 코드를 만들려면 다음을 수행했습니다.

google.maps.event.addListenerOnce(map, 'tilesloaded', function(){
    //this part runs when the mapobject is created and rendered
    google.maps.event.addListenerOnce(map, 'tilesloaded', function(){
        //this part runs when the mapobject shown for the first time
    });
});


답변

Maps API v3을 사용중인 경우 변경되었습니다.

버전 3에서는 기본적으로 bounds_changed이벤트로드를 설정하여 맵로드시 트리거됩니다. 일단 트리거되면 뷰포트 경계가 바뀔 때마다 알리지 않기 위해 리스너를 제거하십시오.

V3 API가 발전함에 따라 앞으로 변경 될 수 있습니다. 🙂


답변

2018 년 :

var map = new google.maps.Map(...)
map.addListener('tilesloaded', function () { ... })

https://developers.google.com/maps/documentation/javascript/events


답변

웹 구성 요소를 사용하는 경우 다음과 같은 예가 있습니다.

map.addEventListener('google-map-ready', function(e) {
   alert('Map loaded!');
});


답변

GMap2::tilesloaded() 당신이 찾고있는 이벤트가 될 것입니다.

참조는 GMap2.tilesloaded 를 참조하십시오.


답변

변수 map가 GMap2 유형의 객체 인 경우 :

    GEvent.addListener(map, "tilesloaded", function() {
      console.log("Map is fully loaded");
    });