我想重用我的基本样式函数来通过覆盖某些属性来创建选择样式。 这种方法适用于线串,多边形和文本的填充/描边颜色,但不适用于图像(在我的情况下为圆形)。 我不想创建新图像,因为应该保留其他属性。
var selectStyleFunction = function(feature, resolution) {
var style = styleFunction(feature, resolution)[0];
style.getImage().getFill().setColor("magenta");
console.log(style.getImage().getFill().getColor());
return [style];
};
在这个fiddle中你可以看到,虽然日志输出是正确的,但上面的代码并没有改变选择的功能样式。
有没有办法覆盖这个属性?
答案 0 :(得分:0)
我在openlayers的api dokumentation中找到了我的问题的答案。首先找到它是显而易见的。
https://openlayers.org/en/latest/apidoc/ol.style.Style.html
ol.style.Style
矢量特征渲染样式的容器。在重新渲染使用该样式的要素或图层之前,通过set *()方法对样式或其子项所做的任何更改都不会生效。
因此,设置者不会触发渲染。