所以我试图像这样设置一个特征颜色,
addInteraction() {
this.style = new Style({
fill: new Fill({
color: this.fillColour,
}),
stroke: new Stroke({
color: this.lineColour,
width: 2
}),
image: new CircleStyle({
radius: 7,
fill: new Fill({
color: this.fillColour
}),
stroke: new Stroke({
color: this.lineColour
})
})
})
this.draw = new Draw({
source: this.vectorSource,
style: [this.style],
type: this.selectedShape,
})
this.coreMap.map.addInteraction(this.draw)
this.snap = new Snap({ source: this.vectorSource })
this.coreMap.map.addInteraction(this.snap);
this.coreMap.map.addInteraction(this.modifyLayer);
}
现在,当我绘制功能时,假设它是一个带有红线和蓝色填充的圆圈,它会在我绘制它时显示一个带有红线和蓝色填充的圆圈,但是一旦完成绘制,它将默认为 openlayers 默认颜色浅蓝色的蓝色的。
如果我将样式应用于vectorLayer,它将持续存在,但我希望该功能保持颜色而不是图层,因为我希望在一个图层上有多个具有多种颜色的功能,我尝试了几种不同的方法,例如在外面设置颜色使用简单的 set 方法设置 newDraw 对象,或者在 draw 对象中使用样式函数设置样式,但没有运气。