Может ли кто-нибудь помочь мне разобраться, как установить обложку листка OFF по умолчанию при добавлении ее на карту, пожалуйста? Например, установив слой CITIES OFF на карте, как показано в приведенном ниже коде. Дело в том, что по умолчанию должен быть включен только уровень STATES ON и CITY OFF.
var baseMaps = {
"Grayscale": grayscale,
"Streets": streets
};
var overlayMaps = {
"Cities": cities, // Need to set OFF over the map
"States": states // Need to set ON over the map
};
L.control.layers(baseMaps, overlayMaps).addTo(map);
Вы не должны добавлять его на карту в первую очередь. Где-то перед этим кодом, который вы опубликовали, вы инициализируете слой городов и добавляете его на карту. В противном случае это не было бы на карте. Например:
var cities = new L.GeoJSON(...);
cities.addTo(map);
//Or
var cities = new L.GeoJSON(...);
map.addLayer(cities);
Теперь, когда вы добавляете это в свой уровень управления, этот флажок автоматически проверяется элементом управления, потому что он уже добавлен на вашу карту.
Пример добавлен после комментария для пояснения. Вот одна группа слоев добавлена к карте, а другая - нет. Оба добавляются в элемент управления уровнем. В элементе управления проверяется только тот, который добавлен на карту:
var map = new L.Map('leaflet', {
center: [0, 0],
zoom: 0,
layers: [
new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
'attribution': 'Map data <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'
})
]
});
// LAYERGROUP WITH ADD TO MAP
var layerGroup1 = new L.LayerGroup([
new L.Marker([25, 25])
]).addTo(map);
// LAYERGROUP WITHOUT ADD TO MAP
var layerGroup2 = new L.LayerGroup([
new L.Marker([-25, -25])
]);
var layerControl = new L.Control.Layers(null, {
'Group 1': layerGroup1,
'Group 2': layerGroup2
}).addTo(map);
body {
margin: 0;
}
html, body, #leaflet {
height: 100%;
}
<!DOCTYPE html>
<html>
<head>
<title>Leaflet 1.0.3</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link type="text/css" rel="stylesheet" href="//unpkg.com/[email protected]/dist/leaflet.css" />
</head>
<body>
<div id="leaflet"></div>
<script type="application/javascript" src="//unpkg.com/[email protected]/dist/leaflet.js"></script>
</body>
</html>