【发布时间】:2020-04-12 18:03:34
【问题描述】:
我目前在我的 Web 应用程序中遇到问题,当从 Web 应用程序中的地图视图切换时,矢量图层会保留在内存中。
我的地图上目前有 20 个矢量图层,每次我离开并返回页面时,它都会保留这 20 个图层并添加一组新图层。
这似乎与https://github.com/openlayers/openlayers/issues/9556 中提出的问题类似。
这是我销毁图层的代码。有人在 OpenLayers 测试版 6 版中遇到过这个问题吗?
const layers = this.map.getLayers();
while (layers.getLength() > 0) {
const layer = layers.item(0);
if (layer.get('layerSourceType') === 'VECTOR') {
layer.getSource().clear();
}
layer.getRenderer().dispose();
layer.setSource(null);
this.map.removeLayer(layer);
}
this.map.setTarget(null);
this.map = null;
【问题讨论】:
-
每次我离开并返回页面究竟是什么意思?您是关闭浏览器/相应的选项卡还是在您的应用中导航?
-
在应用内导航
-
好的。您在哪里将图层添加到地图中,例如
ngOnInit?
标签: javascript memory-leaks openlayers