layerControl中的layerGroup是radio。想要复选框
layerGroup in layerControl is radio. want checkbox
如果我将“baseMaps”添加到我的图层控件,“小屋”实际上是一个复选框。但我只有一张底图,所以我的图层控件中不需要它。但我仍然希望能够关闭我的“小屋”覆盖。但是一旦我删除“baseMaps”,“小屋”就会变成一个单选按钮,无法关闭。有办法吗?
var huts = L.layerGroup();
var hut00 = L.marker([0, 0]).bindPopup('This is <b>HTML</b>content').addTo(huts);
bounds = new L.LatLngBounds(new L.LatLng(90, -180), new L.LatLng(-90, 180));
var baseMap = L.tileLayer("mapTiles/{z}_{x}_{y}.jpg", {tileSize: 512, minZoom: 1, maxZoom: 4, noWrap: true});
var pcMap = L.map('pcMapDiv', {
layers: [baseMap, huts],
center: bounds.getCenter(),
zoom: 0,
maxBounds: bounds,
maxBoundsViscosity: 1.0
});
pcMap.setView([0, 0], 0);
var baseMaps = {
"Plan": baseMap,
};
var overlays = {'Hütten': huts};
var layerControl = L.control.layers(baseMaps, overlays).addTo(pcMap);
var popup = L.popup();
function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " + e.latlng.toString())
.openOn(pcMap);
}
pcMap.on('click', onMapClick);
L.control.layers
的第一个参数填充“基本地图”(带有单选按钮),而其第二个参数填充“叠加层”(带有复选框)。
如果你只想要覆盖,你可以简单地将 null
传递给第一个参数:
L.control.layers(null, overlays)
或者初始化一个空的控件和explicitly add the overlay:
var layerControl = L.control.layers().addTo(map);
layerControl.addOverlay(huts, "Hütten");
如果我将“baseMaps”添加到我的图层控件,“小屋”实际上是一个复选框。但我只有一张底图,所以我的图层控件中不需要它。但我仍然希望能够关闭我的“小屋”覆盖。但是一旦我删除“baseMaps”,“小屋”就会变成一个单选按钮,无法关闭。有办法吗?
var huts = L.layerGroup();
var hut00 = L.marker([0, 0]).bindPopup('This is <b>HTML</b>content').addTo(huts);
bounds = new L.LatLngBounds(new L.LatLng(90, -180), new L.LatLng(-90, 180));
var baseMap = L.tileLayer("mapTiles/{z}_{x}_{y}.jpg", {tileSize: 512, minZoom: 1, maxZoom: 4, noWrap: true});
var pcMap = L.map('pcMapDiv', {
layers: [baseMap, huts],
center: bounds.getCenter(),
zoom: 0,
maxBounds: bounds,
maxBoundsViscosity: 1.0
});
pcMap.setView([0, 0], 0);
var baseMaps = {
"Plan": baseMap,
};
var overlays = {'Hütten': huts};
var layerControl = L.control.layers(baseMaps, overlays).addTo(pcMap);
var popup = L.popup();
function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " + e.latlng.toString())
.openOn(pcMap);
}
pcMap.on('click', onMapClick);
L.control.layers
的第一个参数填充“基本地图”(带有单选按钮),而其第二个参数填充“叠加层”(带有复选框)。
如果你只想要覆盖,你可以简单地将 null
传递给第一个参数:
L.control.layers(null, overlays)
或者初始化一个空的控件和explicitly add the overlay:
var layerControl = L.control.layers().addTo(map);
layerControl.addOverlay(huts, "Hütten");