是否可以获取所选功能的应用样式?我的图层使用样式函数而不是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 );
答案 0 :(得分:0)
我认为您必须使用myFeature.getStyleFunction()
代替myFeature.getStyle()
。
祝你好运。
答案 1 :(得分:0)
您应该使用该功能调用该函数(如果您的样式函数依赖于它,则可以选择分辨率)。所以类似于:myFeature.getStyle()。call(this,feature);或myFeature.getStyle()。call(this,feature,resolution);