이것은 나를 화나게한다. 맵에 레이어 컨트롤을 추가하려면 Leaflet 튜토리얼을 참조하십시오.
L.Icon.Default.imagePath = "Scripts/images";
var mapUrl = 'http://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png';
var secondMap = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
var littleton = L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.'),
denver = L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.'),
aurora = L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.'),
golden = L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.');
var cities = L.layerGroup([littleton, denver, aurora, golden]);
var grayscale = L.tileLayer(mapUrl, { id: mapUrl }),
streets = L.tileLayer(secondMap, { id: secondMap });
var map = L.map('map', {
center: [39.73, -104.99],
zoom: 10,
layers: [grayscale, cities]
});
var baseMaps = {
"Grayscale": grayscale,
"Streets": streets
};
var overlayMaps = {
"Cities": cities
};
L.control.layers(baseMaps, overlayMaps).addTo(map);
이제 removeLayer 함수를 사용하여 map.on ( 'click') 이벤트를 사용하여 컨트롤에서 "GrayScale"맵을 제거하려면 어떻게해야합니까? 코드는 다음과 같습니다.
map.on('click', function(){
//remove GrayScale
});
사용자가 버튼으로 그레이 스케일을 제거 할 수 있도록 하시겠습니까? 아니면 다른 이벤트의 영향으로 동적으로 제거됩니까? 아니면 단순히 회색조 레이어없이지도를 시작 하시겠습니까?
—
hexamon
가장 쉬운 해결책을 말하자 : 이벤트에 대한 영향으로 동적. 예를 들어 map.on ( 'click', function () {})입니다. 그에 따라 게시물을 편집하겠습니다.
—
yesman