Javascript 选择当要素具有自己的样式时不使用的交互样式
我的问题如下: 如果要素具有自己的样式(而不是使用其图层的样式),则不使用ol.interaction.Select“style”特性,或者如果“style”特性是函数,则不调用该函数 这与问题答案中提供的JFIDLE相同,但添加了一种应用于线条特征的样式:Javascript 选择当要素具有自己的样式时不使用的交互样式,javascript,openlayers-3,Javascript,Openlayers 3,我的问题如下: 如果要素具有自己的样式(而不是使用其图层的样式),则不使用ol.interaction.Select“style”特性,或者如果“style”特性是函数,则不调用该函数 这与问题答案中提供的JFIDLE相同,但添加了一种应用于线条特征的样式: featureLine.setStyle(new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'rgba(24, 24, 24, 0.8)', widt
featureLine.setStyle(new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'rgba(24, 24, 24, 0.8)',
width: 8
})
}))
选择线条特征时,黄色的选择交互样式将不应用,也不会执行console.log()
语句。没有为其指定样式的featurePoint会获取交互样式,并执行console.log()
语句
那么,如何将交互样式应用于定义了自己样式的功能?不确定为什么选择行时,选择交互不记录,但您可以在
select
事件上设置不同的样式:
select.on('select', function(evt){
evt.selected.forEach(function(each) {
each.setStyle(styles[each.get('type')]);
});
evt.deselected.forEach(function(each) {
each.setStyle(null); // more likely you want to restore the original style
});
});
不确定选择行时为什么选择交互不记录,但您可以在
select
事件上设置不同的样式:
select.on('select', function(evt){
evt.selected.forEach(function(each) {
each.setStyle(styles[each.get('type')]);
});
evt.deselected.forEach(function(each) {
each.setStyle(null); // more likely you want to restore the original style
});
});
谢谢你。总之,选择交互的“样式”属性仅在按层设置功能样式时使用,并且当功能单独设置样式时,其选定/取消选定的样式必须在.on('select')事件处理程序中编码,这样说正确吗?这似乎是我所看到的,但对我来说不是直观的。好吧,似乎需要更多的测试来确认这种行为。谢谢你。总之,选择交互的“样式”属性仅在按层设置功能样式时使用,并且当功能单独设置样式时,其选定/取消选定的样式必须在.on('select')事件处理程序中编码,这样说正确吗?这似乎是我所看到的,但对我来说并不直观。好吧,似乎需要更多的测试来确认这种行为。