Openlayers 4.11:以编程方式选择功能时不应用样式

Openlayers 4.11:以编程方式选择功能时不应用样式,openlayers,Openlayers,我正在使用来自的已接受答案以编程方式在地图上选择一个功能 一切正常,只是没有应用我的自定义选择样式(元素看起来与以前一样) 我正在使用此代码设置我的选择交互: var selectSingleOrDoubleClick = new ol.interaction.Select({ style: this.selectCustomStyle, condition: function(mapBrowserEvent) { return ol.events.conditi

我正在使用来自的已接受答案以编程方式在地图上选择一个功能

一切正常,只是没有应用我的自定义选择样式(元素看起来与以前一样)

我正在使用此代码设置我的
选择
交互:

var selectSingleOrDoubleClick = new ol.interaction.Select({
    style: this.selectCustomStyle,
    condition: function(mapBrowserEvent) {
        return ol.events.condition.singleClick(mapBrowserEvent) || ol.events.condition.doubleClick(mapBrowserEvent);
    },
    filter: function(feature, layer) {
        ...
    }
});
我这样做是为了以编程方式选择我的功能:

selectSingleOrDoubleClick.getFeatures().clear();
selectSingleOrDoubleClick.getFeatures().push(featureToSelect);

selectControl.dispatchEvent({
    type: 'select',
    selected: [featureToSelect],
    deselected: []
});

我不应该认为我的功能已被选中(例如,如果我通过用户交互选择了另一个功能,我以前选择的功能将被取消选中,等等)。

显然,这是Openlayers中的正常行为,只要您选择的功能已经应用了非默认样式


因此,如果要修复此问题,则需要使用
select/unselect
事件来应用需要应用的任何样式,并根据需要将其删除。

显然,这是Openlayers中的正常行为,只要选择中涉及的功能已经应用了非默认样式


因此,如果您想解决这个问题,那么您需要使用
select/unselect
事件来应用您需要应用的任何样式,并在必要时将其删除。

可以创建一个示例JSFIDLE或任何地方。。我们可以在哪里复制相同的错误?可以创建一个示例JSFIDLE或任何地方。。我们可以在哪里复制相同的er罗?