gpt4 book ai didi

javascript - baselayer更改后的setDrawingOptions Leaflet Draw

转载 作者:行者123 更新时间:2023-11-30 14:30:36 24 4
gpt4 key购买 nike

我想在更改基础层后更改多边形的颜色。我使用了 setDrawingOptions 但它不起作用...

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

我正在使用 Leaflet 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"
}
}
});
});

编辑:既然您编辑了帖子,就很清楚了。您希望已经绘制的多边形也改变颜色。您创建的多边形托管在 layerGroup 或 featureGroup 中,我们称其为“drawnItems”。所以你要做的很简单:

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

drawnItems.setStyle({
color:"#fff"
})
});

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

关于javascript - baselayer更改后的setDrawingOptions Leaflet Draw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com