baselayer更改后的setDrawingOptions Leaflet Draw
setDrawingOptions after baselayer change Leaflet Draw
我想在更改基础层后更改多边形的颜色。我用过 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.drawControl is undefined"
请尝试以下代码(我只删除了 "drawControl" 之前的 "map." 部分)
map.on('baselayerchange', function(){
drawControl.setDrawingOptions({
polygon: {
shapeOptions: {
color: "#fff"
}
}
});
});
编辑: 现在您编辑了 post,很清楚了。您希望已经绘制的多边形也改变颜色。您创建的多边形托管在 layerGroup 或 featureGroup 中,我们称之为 "drawnItems"。所以你要做的很简单:
map.on('baselayerchange', function(){
drawControl.setDrawingOptions({
polygon: {
shapeOptions: {
color: "#fff"
}
}
});
drawnItems.setStyle({
color:"#fff"
})
});
这是一个有效的 jsfiddle:
https://jsfiddle.net/jt7wy4eg/2/
用户缩放时会应用更改 in/out(多边形变为红色,即使是绘制的多边形)。
我想在更改基础层后更改多边形的颜色。我用过 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.drawControl is undefined"
请尝试以下代码(我只删除了 "drawControl" 之前的 "map." 部分)
map.on('baselayerchange', function(){
drawControl.setDrawingOptions({
polygon: {
shapeOptions: {
color: "#fff"
}
}
});
});
编辑: 现在您编辑了 post,很清楚了。您希望已经绘制的多边形也改变颜色。您创建的多边形托管在 layerGroup 或 featureGroup 中,我们称之为 "drawnItems"。所以你要做的很简单:
map.on('baselayerchange', function(){
drawControl.setDrawingOptions({
polygon: {
shapeOptions: {
color: "#fff"
}
}
});
drawnItems.setStyle({
color:"#fff"
})
});
这是一个有效的 jsfiddle: https://jsfiddle.net/jt7wy4eg/2/ 用户缩放时会应用更改 in/out(多边形变为红色,即使是绘制的多边形)。