我正在使用Mapbox JS,并使用Leaflet Draw工具来创建,编辑和删除多边形。对于我的工作,我将多边形分成不同的特征组,因为我想为不同的目的使用不同的组。但我想选择一个功能组,然后希望能够编辑和删除所选组中的图层。我还想要一个选项来同时显示所有功能组。
我首先查看了this example,在那里我可以选择要素组,然后在该要素组中创建和编辑图层。但我可能无法使用此方法的原因是因为此方法仅显示所选要素组中的图层,而有时我希望能够显示多个要素组。
然后我查看this example,我可以根据需要显示/隐藏多个功能组。但是当我这样尝试时,当我尝试完成多边形时,它会向我显示一个警告,告诉我选择一个特征组。
这是我的layercontrol(基于第二个例子):
var layerControl = new L.Control.Layers(null, {
'Fields': new L.FeatureGroup(),
'Extras': new L.FeatureGroup()
}).addTo(map);
然后我有了这个,我得到了所选的功能组,以及一个检索该值的函数:
var currentFeatureGroup;
map.on('baselayerchange', function (e) {
currentFeatureGroup = e.layer;
});
function getCurrentFeatureGroup () {
return currentFeatureGroup;
}
这就是我对draw:created事件的启动(来自第一个例子):
map.on('draw:created', function (e) {
var featureGroup = getCurrentFeatureGroup();
if (featureGroup instanceof L.FeatureGroup) {
featureGroup.addLayer(e.layer);
} else {
alert('Please select a featuregroup');
}
});
有没有办法我可以选择显示/隐藏多个要素组,并且仍然可以使用小叶绘制工具选择一个要素组并在该特定组中创建/编辑/删除多边形?