OpenLayers 4中如何批量移除指定特征数组而非清空全部特征?
批量移除OpenLayers 4 VectorSource中的指定特征数组
你完全不需要用循环逐个移除!OpenLayers 4的ol.source.Vector其实提供了专门的批量移除特征的方法——removeFeatures(),它可以直接接收一个特征数组作为参数,一次性移除数组内的所有特征,完美匹配你的需求。
优化后的代码示例
把你原来的removeRedFeature函数改成这样就行:
var docketSource = new ol.source.Vector({ url: dataUrl, format: new ol.format.TopoJSON() }); var redFeatures = []; function removeRedFeature(redFeatures) { // 直接传入特征数组,一次性移除所有目标特征 docketSource.removeFeatures(redFeatures); }
补充说明
- 这个方法只会移除你传入
redFeatures数组里的特征,不会影响数据源中其他未被选中的特征,完全符合你的要求; - 相比循环逐个调用
removeFeature(),批量操作不仅代码更简洁,在处理大量特征时性能也会更优。
内容的提问来源于stack exchange,提问作者Venkat Maridu
相关产品推荐
相关产品推荐

