2016-07-08 95 views
0

因此,我正在檢查是否有辦法刪除Openlayers 3中圖像圖層上存在的特徵(例如ol.layer.Image({}))。下面是我用它來創建層代碼:如何刪除圖層中的特徵,Openlayers 3

var vector = new ol.layer.Image({ 
    tethys_legend_title: titleName, 
    zIndex: 1, 
    source: new ol.source.ImageVector({ 
     source: vectorSource, 
     style: styleFunction, 
    }), 
}); 

// Make sure that the layer is not already existing, remove it if the layer does exist 
map = TETHYS_MAP_VIEW.getMap(); 
for (i = 0; i < map.getLayers().getProperties().length ; i ++){ 
    if (map.getLayers().item(i).getProperties().tethys_legend_title === titleName) 
     map.removeLayer(map.getLayers().item(i)); 
} 
vector.tethys_legend_title = 'Water Table'; 
map.addLayer(vector); 

我目前瞭解,可以的OpenLayers被刪除功能的方法是通過.removeFeature()方法。但是,removeFeature()方法僅適用於矢量圖層。有沒有辦法刪除與圖像圖層有關的功能?謝謝

+0

您是否試過從原始vectorSource中刪除功能?你可以像這樣得到你的特性:'vector.getSource()。getSource()',然後從那裏調用'removeFeature'。 –

+0

這就像一個魅力,謝謝你!如果你讓它成爲答案,我會選擇它作爲正確的答案。 我注意到沒有通用的方法來刪除圖像圖層特徵,所以如果圖像圖層的來源不是矢量特徵,那麼openlayers似乎沒有從圖像圖層去除特徵的一般方法。 – Jacob

回答

1

首先,您需要訪問圖像源中的矢量源:vector.getSource().getSource()。然後,您將可以使用removeFeature方法,即從ol.source.Vector返回的對象。

相關問題