解构开放层3贴图
Deconstructing an Open Layers 3 map
本文关键字:贴图 更新时间:2023-09-26
因此,我使用带有Ember.js的Open Layers 3来制作仪表板,我已经动态加载了地图,但我希望在离开路线时将其销毁,我找到的唯一东西是map.dedestroy(),但它是用于API的旧版本,新版本中似乎没有。
在访问了几次地图页面后,我使用了chrome调试器,发现我有29 ol。映射对象。
这就是我目前拥有的
App.MapView = Ember.View.extend({
map: null,
didInsertElement: function() {
this.map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
})
],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
},
willDestroyElement: function() {
// destroy this.map
}
});
我在文档中找不到任何关于删除地图的信息。
提前谢谢。
您应该尝试这样做:
App.MapView = Ember.View.extend({
// if you are not using Ember.get/set you'd better make this "private"
_map: null,
didInsertElement: function() {
this._map = new ol.Map(...);
},
willDestroyElement: function() {
this._map.setTarget(null);
this._map = null;
}
});
它将映射与其元素分离,并允许正确的垃圾收集。不要忘记删除对地图对象的任何其他引用(如果有的话)。
相关文章:
- 更改高贴图的缩放级别
- 使用此处贴图的不同颜色到噪波标记
- MapReduce还是普通查询?(每个贴图有几个发射)
- OpenLayers调用setCenter后,贴图仍在0,0的位置
- 如何通过在灯箱外单击或在与图像贴图组合时点击esc退出灯箱
- 在特定标记上居中贴图,在其他标记上fitToBounds
- Three.js无法获取贴图和颜色属性'使用Canvas渲染器
- 悬停并选择图像贴图的状态
- 如何正确制作 THREE.js 中的法线贴图
- 在多边形贴图上显示 svg 圆
- 角度贴图:无法从 markersScope 获取 gMarker
- 自定义控件中的角度贴图DrawManager实例
- imagemap上的Imageflip,但保留贴图坐标
- 如何旋转基于矢量的贴图
- 静态贴图API添加色调|饱和度|亮度会破坏图像
- 如何显示具有多种样式的一层贴图
- 缩放OpenLayers3贴图以覆盖多个矢量层
- 如何正确排序瓷砖贴图,使其显示在最底层的Phaser上
- Three.js环境贴图和顶点动画
- Three.js中的光照贴图