【发布时间】:2016-11-29 09:53:00
【问题描述】:
我有一个大型地图应用程序,因此为了具有代表性,我只需要提供一小段代码。所以,这就是我尝试从地图中删除所有图层的方式:
map.getLayers().forEach(function (layer) {
map.removeLayer(layer);
});
//map.getOverlays().clear(); <-- also tried this, but to no effect
而且我有一些随机行为 - 有时所有图层都被删除,有时没有。这是完全随机的,因此无法保证您能够重现此问题。所以,对我来说,仅仅从概念上知道它为什么会发生就足够了。
解决方案
这显然是一个 ol3 错误,因为如果我只循环和删除两次,它就会开始工作:
map.getLayers().forEach(function (layer) {
map.removeLayer(layer);
});
//for some crazy reason I need to do it twice.
map.getLayers().forEach(function (layer) {
map.removeLayer(layer);
});
这可能不是错误,并且有一些秘密方法可以清除地图。但我不知道。
【问题讨论】: