Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择当要素具有自己的样式时不使用的交互样式_Javascript_Openlayers 3 - Fatal编程技术网

Javascript 选择当要素具有自己的样式时不使用的交互样式

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

我的问题如下:

如果要素具有自己的样式(而不是使用其图层的样式),则不使用ol.interaction.Select“style”特性,或者如果“style”特性是函数,则不调用该函数

这与问题答案中提供的JFIDLE相同,但添加了一种应用于线条特征的样式:

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')事件处理程序中编码,这样说正确吗?这似乎是我所看到的,但对我来说并不直观。好吧,似乎需要更多的测试来确认这种行为。