是否可能获取所选要素的应用样式?我的图层使用样式函数而不是ol.style.Style。当我调用myFeature.getStyle()时,它返回该函数。
根据这里和其他地方的回复,更新了我的问题并尝试了一些方法。
最终我为每个图层创建了一个选择样式函数。
这种方式不起作用,不会返回任何样式:
selectInteraction = new ol.interaction.Select( {
style: function( feature, resolution ) {
if ( feature.selectStyle ) {
return feature.selectStyle;
}
},
layers: mylayers
} );
此外,使用上述方法我遇到了以下错误:
Uncaught TypeError: style.getImage is not a function
ol.renderer.vector.renderFeature @ol.js:38455
ol.renderer.canvas.VectorLayer.renderFeature @ol.js:44202
renderFeature @ol.js:44148
ol.renderer.canvas.VectorLayer.prepareFrame @ol.js:44164
ol.renderer.canvas.Map.renderFrame @ol.js:45268
ol.Map.renderFrame_ @ol.js:52034
(anonymous function) @ol.js:50898
这确实有效,该功能使用我的选择样式进行呈现。但是,我不想管理重新设置样式,因此它真的需要在selectInteraction中实现:
evt.selected.forEach( function( evt ) {
evt.setStyle( evt.selectStyle );
}, this );