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");