Openlayers 4.11:以编程方式选择要素时不应用任何样式

时间:2017-05-30 13:53:13

标签: openlayers

我使用here中接受的答案以编程方式在我的地图上选择一项功能。

一切都好,除了我没有应用我的自定义选择样式(该元素看起来和以前一样)。

我正在使用此代码设置我的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) {
        ...
    }
});

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

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

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

我不应该选择我的功能considered(例如,如果我通过用户互动选择其他功能,我之前选择的功能将被取消选择,等等。

1 个答案:

答案 0 :(得分:0)

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

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