Leaflet에서 map.on('load')이 발화되지 않는 경우 처방전

5252 단어 leaflet

사건



이하의 실장이라고 load 이벤트가 잘 발화하지 않는다! ?

이 구현은 이벤트가 발화하지 않습니다.
  var map = L.map('map').setView([51.505, -0.09], 13);
  L.tileLayer('https://api.mapbox.com/styles/v1/k-nakamura/ciujeilwt003u2jqn47v2ozcs/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1Ijoiay1uYWthbXVyYSIsImEiOiJjaXVqZWd6OTMwMGhjMnlxaXZrcGhzczJtIn0.LQwDcl6aZFQRx8dPfneFHQ', {
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
    maxZoom: 18
  }).addTo(map);

  map.on('load', function() {
    alert('The map load event is fired');
  });

확인 페이지

원인 : load 이벤트의 문서를 볼 수 있습니다.



Fired when the map is initialized (when its center and zoom are set for the first time).

그래서 위도 경도와 줌을 처음 설정한 타이밍에 발화한다.
위의 코드에서는 초기화 메소드로 건네주고 있으므로 load 이벤트 콜백을 건네줄 타이밍이 없다.

해결: 이벤트를 설정한 후 .setView()



이벤트가 발화
  var map = L.map('map');
  L.tileLayer('https://api.mapbox.com/styles/v1/k-nakamura/ciujeilwt003u2jqn47v2ozcs/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1Ijoiay1uYWthbXVyYSIsImEiOiJjaXVqZWd6OTMwMGhjMnlxaXZrcGhzczJtIn0.LQwDcl6aZFQRx8dPfneFHQ', {
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
    maxZoom: 18
  }).addTo(map);

  map.on('load', function() {
    alert('The map load event is fired');
  });

  map.setView([51.505, -0.09], 13);

확인 페이지

그래도 발화하지 않으면



또 다른 원인이라고 생각합니다

좋은 웹페이지 즐겨찾기