Điều này đang khiến tôi phát điên. Xem hướng dẫn của Tờ rơi để thêm điều khiển lớp vào bản đồ của bạn:
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);
Bây giờ, làm cách nào để sử dụng chức năng removeLayer để xóa bản đồ "GrayScale" khỏi điều khiển bằng sự kiện map.on ('click')? Mã sẽ là:
map.on('click', function(){
//remove GrayScale
});
Bạn có muốn người dùng có thể loại bỏ Grayscale bằng một nút không? Hoặc cho nó để được loại bỏ linh hoạt như là một hiệu ứng của một số sự kiện khác? Hay bạn chỉ đơn giản muốn bản đồ bắt đầu mà không có lớp thang độ xám nào cả?
—
hexamon
Hãy nói giải pháp đơn giản nhất: năng động như một hiệu ứng cho một sự kiện. Ví dụ: map.on ('click', function () {}). Tôi sẽ chỉnh sửa bài viết của tôi cho phù hợp.
—
yesman