如何删除图像层中的特征,Openlayers 3

How to remove features in an Image Layer, Openlayers 3

所以我正在检查是否有办法删除 Openlayers 3 中图像层上存在的功能(例如 ol.layer.Image({}) )。这是我用来创建图层的代码:

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() 方法仅适用于矢量图层。有没有办法删除与图像层有关的功能?谢谢

首先,您需要访问图像源中的矢量源:vector.getSource().getSource()。然后,您将能够从那里使用 removeFeature 方法,即从返回的 ol.source.Vector 对象..