单击群集时如何检查control.layer的复选框?
示例:当我点击我的群集" Bosquet Creux"在我的地图上,我希望它能够检查" Bosquet Creux"在我的图层控件中。
使用的插件: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);}});
}
});
抱歉我的英语不好。
答案 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
语句,这将导致该函数返回图标,它将在那里结束