[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");
});