设置绘图选项后的基础图层更改传单绘制



更改基础图层后,我正在尝试更改多边形的颜色。我用过setDrawingOptions但它不起作用...

当我在setDrawingOptions之前和之后记录对象时,它会发生变化。但是我没有看到已经绘制的多边形的变化。 当我绘制一个新多边形时,它会使用新颜色进行绘制。

我正在使用传单 0.7.x

map.on('baselayerchange', function(){
map.drawControl.setDrawingOptions({
polygon: {
shapeOptions: {
color: "#fff"
}
}
});
});

事件被触发。并且没有控制台错误

我想drawControl是这样创建的:

var drawControl = new L.Control.Draw();

如果是,则它不是 map 对象的属性,在控制台中您应该出现如下错误:

"map.drawControl is undefined"

请尝试以下代码(我只删除了"drawControl"之前的"map."部分(

map.on('baselayerchange', function(){
drawControl.setDrawingOptions({
polygon: {
shapeOptions: {
color: "#fff"
}
}
});
});
编辑

现在你编辑了你的帖子,很明显。您还希望已绘制的多边形更改颜色。您创建的面托管在图层组或要素组中,我们称之为"绘制项目"。所以你要做的很简单:

map.on('baselayerchange', function(){
drawControl.setDrawingOptions({
polygon: {
shapeOptions: {
color: "#fff"
}
}
});
drawnItems.setStyle({
color:"#fff"
})
});

这是一个工作 jsfiddle: https://jsfiddle.net/jt7wy4eg/2/当用户放大/缩小时会应用更改(多边形变为红色,即使是绘制的多边形(。

最新更新