Javascript ○在传单图上分别关闭多个组中的所有标记,并同时关闭所有组?

Javascript ○在传单图上分别关闭多个组中的所有标记,并同时关闭所有组?,javascript,leaflet,Javascript,Leaflet,我有三组标记,我希望它们分别打开/关闭,并且一次全部打开/关闭。 我试图从示例中转移函数,但我不知道如何正确地为我的标记组执行此操作。我将非常感谢你的回答。 例子: 我的地图: 当然,这并不完全是应该的,但对于一个良好的开端来说,这就足够了 设citiesA=L.layerGroup; 设citiesB=L.layerGroup; 设test=L.layerGroup; L.marker[39.61,-105.02]。我是利特尔顿公司。addTocitiesA, L.marker[39.74,

我有三组标记,我希望它们分别打开/关闭,并且一次全部打开/关闭。 我试图从示例中转移函数,但我不知道如何正确地为我的标记组执行此操作。我将非常感谢你的回答。 例子: 我的地图:


当然,这并不完全是应该的,但对于一个良好的开端来说,这就足够了

设citiesA=L.layerGroup; 设citiesB=L.layerGroup; 设test=L.layerGroup; L.marker[39.61,-105.02]。我是利特尔顿公司。addTocitiesA, L.marker[39.74,-104.99]。我是丹佛公司。addTocitiesA, L.marker[39.73,-104.8].这是科罗拉多州的奥罗拉市.addTocitiesA, L.marker[39.77,-105.23]。这是Golden,CO.。addTocitiesA; L.marker[39.81,-105.09]。我是利特尔顿公司。AddToCitieb, L.marker[39.64,-104.99].bindPopup“我是丹佛公司”。AddToCitieb, L.marker[39.63,-104.8].bindPopup“这是科罗拉多州的极光”,AddToCitieb, L.marker[39.57,-105.23].bindPopup'This is Golden,CO.。AddToCitieb; 让mbAttr='映射数据&复制;贡献者,'+ ', ' + “图像”, 姆布尔https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyj1ijoibwwwwym94iiwiysi6imnpejy4nxvycta2emycxbndhrqcmz3n3gifq.rjfig214ariislb6b5aw'; 设灰度=L.tileLayermbUrl{ id:'地图盒.灯光', 署名:mbAttr }, 街道=L.TilleayerMburl{ id:“地图盒。街道”, 署名:mbAttr }; 设map=L.map'map'{ 中间:[39.73,-104.99], 缩放:10, 图层:[灰度] }; 让baseLayers={ 灰度:灰度, 街道:街道 }; 让覆盖层={ CitiesA:CitiesA, CitiesB:CitiesB, “所有城市”:测试 }; 覆盖['All cities'].“添加”功能{ setTimeoutfunction{ 用于覆盖层中的let覆盖层{ 覆盖[overlay].addTomap; } }, 0; }; 覆盖['All cities'].“删除”功能{ setTimeoutfunction{ 用于覆盖层中的let覆盖层{ 地图.移除图层[叠加]; } }, 0; }; 让control=L.control.layersbaseLayers,overlays.addTomap; html, 身体{ 身高:100%; 保证金:0; } 地图{ 宽度:600px; 高度:400px; }
当然可以看一下文档,但是如果标记组是一个标记组,那么它就可以工作。我有三组标记,我希望它们可以同时单独打开/关闭。标记组可以包含其他标记组。问题是,当用户切换单个类别时,此复选框将不同步。一个更复杂的技巧是保持主图层组为空,并通过侦听map overlayadd和overlayremove事件并手动添加/删除类别来模拟所有其他类别图层组的添加/删除。就像这里:非常感谢。这并不重要,但在IE11.388中不起作用。。。但这个例子是有效的:。不过,再次非常感谢。它不起作用,因为我使用了箭头功能,我已经回到了中世纪;它在IE11下工作;我建议用最新的javascript语法编写代码,并使用babel+CoreJS转换为es2015。听起来不错,但我不理解:无论如何,谢谢。。。
// Marker group
    var Group_1 = L.layerGroup(); 
    // Group_1 markers
    var Group_2 = L.layerGroup(); 
    // Group_2 markers
    var Group_3 = L.layerGroup(); 
    // Group_3 markers

    var Markers_overlays = {
        "1": Group_1,};
        "2": Group_2,};
        "3": Group_3,};

    // empty LayerGroup that will be used to emulate adding/removing all markers 
    var allPointsLG = L.layerGroup();
        Markers_overlays["All Points"] = allPointsLG;

    // control.layers
    var Markers_control_topright = L.control.layers(null, Markers_overlays, {collapsed: true, position: 'topright'}).addTo(map);        
        Markers_overlays["1"].addTo(map);
        Markers_overlays["2"].addTo(map);   
        Markers_overlays["3"].addTo(map);

    // adding/removing all markers method from https://jsfiddle.net/qkvo7hav/7/