繁体   English   中英

OpenLayers 4.6.5设置特征颜色

[英]OpenLayers 4.6.5 Setting a feature colour

因此,我试图像这样设置要素颜色,

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对象内部使用样式函数设置样式。

您可以直接将样式分配给特征。 一个合适的时间和地点将是一个drawend者:

draw.on('drawend', function(e) {
  e.feature.setStyle(style);
});

因此,无论何时完成绘制特征,它都会得到其样式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM