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

Openlayers 4.11 : no style applied when programatically selecting a feature

我正在使用 接受的答案以编程方式 select 我地图上的一个地图项。

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

我正在使用此代码来设置我的 Select 交互:

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) {
        ...
    }
});

我这样做是为了以编程方式 select 我的功能:

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

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

我不应该说我的功能是 considered selected(例如,如果我通过用户交互 select 另一个功能,我以前 selected 的功能变成未selected等

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

所以如果你想解决这个问题,那么你需要使用 select/unselect 事件来应用你需要应用的任何样式,并根据需要删除它。