2017-05-30 36 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事件來應用你需要應用的任何樣式,並根據需要刪除它。