2017-06-06 73 views
2

是否有機會觸發ol4中ol.feature的手動選擇?我看到帖子here,但我有同樣的問題:自定義選擇樣式不適用。任何解決方法以編程方式選擇作爲正常選擇(在地圖內)工作?以編程方式觸發開放圖層中的選擇事件4

+0

我懷疑這是openlayers 4中的一個bug;我花了幾個小時在同一問題上(我在這裏描述了https://stackoverflow.com/questions/44264227/openlayers-4-11-no-style-applied-when-programatically-selecting-a-feature),但仍然沒有表現出來。 – Andrei

回答

0

我必須解決的問題是 - 如果用戶點擊外部表中的記錄,我不得不顯示該功能的彈出窗口。這就是我解決問題的方法。

  1. 繪製地圖時,我保存了圖層源,全局變量中的要素列表。
  2. 當用戶點擊表中的記錄時,我得到記錄的ID。
  3. 獲取功能 - layerSource.getFeatureById(id)
  4. 繪製彈出窗口。 (不要以爲你對這一步感興趣)

如果你必須設置樣式,我認爲你需要從地圖中刪除舊的矢量圖層,並重新繪製圖層。對於該樣式,您將需要使用一個函數,該函數將爲選定的特徵返回不同的樣式。

+0

我的問題是我如何使手動「選擇」事件傳遞給ol.interaction.select樣式。我有功能,我有交互,我有選擇風格功能(交互),但我不知道如何將它們結合起來,從地圖進行編程選擇。我有這樣的代碼: 'selectControl.getFeatures()。push(featureToSelect); selectControl.dispatchEvent({ \t \t \t類型: '選擇', \t \t \t選自:[featureToSelect], \t \t \t取消選擇:[], });'但我的選擇樣式不適用。它應用默認的選擇風格。 –

相關問題