如何删除图像层中的特征,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
对象..
所以我正在检查是否有办法删除 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
对象..