Конечно, это не совсем так, как должно быть, но для хорошего старта этого должно быть достаточно;)
let citiesA = L.layerGroup();
let citiesB = L.layerGroup();
let test = L.layerGroup();
L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.').addTo(citiesA),
L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.').addTo(citiesA),
L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.').addTo(citiesA),
L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.').addTo(citiesA);
L.marker([39.81, -105.09]).bindPopup('This is Littleton, CO.').addTo(citiesB),
L.marker([39.64, -104.99]).bindPopup('This is Denver, CO.').addTo(citiesB),
L.marker([39.63, -104.8]).bindPopup('This is Aurora, CO.').addTo(citiesB),
L.marker([39.57, -105.23]).bindPopup('This is Golden, CO.').addTo(citiesB);
let mbAttr = 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
mbUrl = 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw';
let grayscale = L.tileLayer(mbUrl, {
id: 'mapbox.light',
attribution: mbAttr
}),
streets = L.tileLayer(mbUrl, {
id: 'mapbox.streets',
attribution: mbAttr
});
let map = L.map('map', {
center: [39.73, -104.99],
zoom: 10,
layers: [grayscale]
});
let baseLayers = {
Grayscale: grayscale,
Streets: streets
};
let overlays = {
CitiesA: citiesA,
CitiesB: citiesB,
'All cities': test
};
overlays['All cities'].on('add', function() {
setTimeout(function() {
for (let overlay in overlays) {
overlays[overlay].addTo(map);
}
}, 0);
});
overlays['All cities'].on('remove', function() {
setTimeout(function() {
for (let overlay in overlays) {
map.removeLayer(overlays[overlay]);
}
}, 0);
});
let control = L.control.layers(baseLayers, overlays).addTo(map);
html,
body {
height: 100%;
margin: 0;
}
#map {
width: 600px;
height: 400px;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js"></script>
<div id='map'></div>