2015-10-30 59 views
2

在Openlayers 3.9.0中,我實現了一個代碼來繪製要素並獲取它們的幾何類型和座標。創建無源矢量圖層

我有用於OL2,當你可以創建一個「乾淨」的矢量圖層沒有源,所以用戶可以創建新的功能,沒有看到舊的,保存的。

在OL3中,我無法創建沒有源的矢量圖層。我沒有得到任何錯誤,但是當我創建一個品脫,我不明白它在地圖上,即使我設置的樣式

layerVector = new ol.layer.Vector({ 
    style:myStyle 
}); 

另外一個載體層必須有一個來源,所以我能做到這一點

var features = sourceVector.getFeatures(); 

並獲得新創建的功能。

任何解決方案乾淨的矢量圖層沒有源或至少沒有加載保存的功能?

感謝

回答

2

只是一個空源初始化您的載體層像這樣:

layerVector = new ol.layer.Vector({ 
    source:new ol.source.Vector() 
}); 

然後從任何功能

var vecSource = layerVector.getSource(); 
var featsToRemove = vecSource.getFeatures(); 
    for (var f=0;f<featsToRemove.length;f++) 
    { 
    vecSource.removeFeature(featsToRemove[f]); 
    } 

或更好的清潔您的層@Alvin Lindstam建議

var vecSource = layerVector.getSource(); 
vecSource.clear() 

我沒有測試它,但它應該工作。

+1

提示:不要循環瀏覽要移除的功能,請考慮使用'vecSource.clear()' –

+0

感謝@Alvin。編輯 – pavlos