在OpenLayers 3中,如果我使用setStyle(...insert style...)
设置功能样式,则不再显示与ol.interaction.select
的默认交互样式。如果我尝试定义样式或样式函数,那么:
var select = new ol.interaction.Select({
style: ...insert style here...
});
map.addInteraction(select);
它无效。如果我删除使用ol.feature.setStyle(...insert style...)
设置的自定义样式,则可以正常使用。这有意义吗?我想知道用setStyle()
设置一个功能样式是否会覆盖默认的交互样式......
任何线索?
答案 0 :(得分:1)
在实例化ol.interaction.select
时,我没有使用样式或样式函数,而是使用select
事件来处理选定和取消选择的样式。
var select = ol.interaction.select();
select.on('select', function (e) {
if(e.selected.length > 0) {
e.selected[0].setStyle(...insert selected style here...);
}
if(e.deselected.length > 0) {
e.deselected[0].setStyle(..insert original style here...);
}
});
出于某种原因,当最初使用setStyle
定义要素的样式时,在创建交互时不能使用构造函数样式或样式函数。以上工作正常,但它只是一些额外的代码。