[英]source clear BUG in OpenLayers 3
我正在使用OpenLayers 3(v3.20)。 我要实现的只是从特定图层中删除所有功能。 我看到有一个明确的方法,文档说,
清除(opt_fast)
从源中删除所有功能。
但是,当我像这样将其应用于图层源时:
layer.getSource().clear();
我看到闪烁(功能已删除),然后看到服务器请求,以便再次重新加载功能。 因此,要么文档不完整,要么存在错误。
我还尝试删除以下功能:
features = source.getFeatures();
for (i = 0; i < features.length; i += 1) {
source.removeFeature(features[i]);
}
但这确实很奇怪。 例如,如果我有四个功能,则当我循环一次时,它将仅删除两个功能,而当我循环两次时,将删除一个额外的功能。 总而言之,我必须循环3次(实际上不是DRY)才能删除所有功能。 我真的很好奇,为什么会这样以及如何解决它。 谢谢!
正如Karl-JohanSjögren指出的那样,在迭代遍历时删除数组成员会修改数组本身,因此,您可以使用反向数组或使用Array MDN参考中的本机函数:
features = source.getFeatures();
features.forEach(function (feature){
source.removeFeature(feature);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.