繁体   English   中英

在OpenLayers中选择时覆盖样式属性

[英]Overwrite style properties on select in OpenLayers

我想重用我的基本样式功能,通过覆盖一些属性来创建选择样式。 这种方法适用于线串,多边形和文本的填充/描边颜色,但不适用于图像(在我的情况下为圆圈)。 我不想创建新图像,因为应该保留其他属性。

var selectStyleFunction = function(feature, resolution) {
  var style = styleFunction(feature, resolution)[0];
  style.getImage().getFill().setColor("magenta");

  console.log(style.getImage().getFill().getColor());

  return [style];
};

在这个小提琴中,您可以看到,尽管日志输出正确,但是上面的代码并没有更改所选的要素样式。

有什么办法可以覆盖此属性?

我在openlayers的api文档中找到了我的问题的答案。 首先发现它太明显了。

https://openlayers.org/en/latest/apidoc/ol.style.Style.html

ol.style.Style
矢量功能渲染样式的容器。 在重新渲染使用样式的要素或图层之前,通过set *()方法对样式或其子项所做的任何更改都不会生效。

因此,渲染不会由设置者触发。

暂无
暂无

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

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