Leaflet JS:单击MarkerClusterGroup,选中/取消选中control.layer复选框

时间:2016-01-28 18:37:28

标签: leaflet markerclusterer

单击群集时如何检查control.layer的复选框?

示例:当我点击我的群集" Bosquet Creux"在我的地图上,我希望它能够检查" Bosquet Creux"在我的图层控件中。

My Leaflet Map

使用的插件:MarkersCluster

var Region1 = new L.MarkerClusterGroup({ showCoverageOnHover: false, disableClusteringAtZoom: 4, maxClusterRadius: 300,
iconCreateFunction: function(cluster){
    var Region1 = cluster.getAllChildMarkers();
        var n = null;
        for (var i = 0; i < Region1.length; i++)
            return L.divIcon({ html: n, className: 'Region1', iconSize: L.point(268, 34)});

        Region1.on('click', function(){if (map.hasLayer(Region2)) {map.removeLayer(Region2);}});
}
});

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

要检查群集上的点击,您可以按docs中的说明收听clusterclick事件。然后,您可以找到包含document.querySelector('#id of checkbox')(或document.getElementById())的复选框,并通过设置其值.checked="checked"将其启用,或使用.checked=false将其关闭。

将此代码放在Javascript中的new L.MarkerClusterGroup()之外:

Region1.on('clusterclick', function (a) {
    if (!map.hasLayer(Region2)) {
      map.addLayer(Region2);
      map.removeLayer(Region1);
      document.querySelector('#region1checkbox').checked="checked";
    }
});

另一个注意事项:您发布的代码中的Region1.on()未执行,因为之前有return语句,这将导致该函数返回图标,它将在那里结束

这是一个演示:http://plnkr.co/edit/83oEg9tbeAeGwq8ZPPmi?p=preview