2017-05-30 38 views
0

我使用从here接受的答案以编程方式选择我地图上的功能。Openlayers 4.11:在编程式选择功能时不应用样式

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

我使用此代码设置我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: [] 
}); 

我不应该,我的功能选择了IS considered(例如,如果我通过用户交互选择了另一个功能,我的先前选择的功能变为未选中,等等。

+0

是可以创建一个示例Jsfiddle或任何地方..我们可以重现相同的错误? –

回答

0

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

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