Remove layer renderers when viewport is removed
This commit is contained in:
@@ -428,7 +428,6 @@ ol.PluggableMap.prototype.addOverlayInternal_ = function(overlay) {
|
|||||||
*/
|
*/
|
||||||
ol.PluggableMap.prototype.disposeInternal = function() {
|
ol.PluggableMap.prototype.disposeInternal = function() {
|
||||||
this.mapBrowserEventHandler_.dispose();
|
this.mapBrowserEventHandler_.dispose();
|
||||||
this.renderer_.dispose();
|
|
||||||
ol.events.unlisten(this.viewport_, ol.events.EventType.WHEEL,
|
ol.events.unlisten(this.viewport_, ol.events.EventType.WHEEL,
|
||||||
this.handleBrowserEvent, this);
|
this.handleBrowserEvent, this);
|
||||||
ol.events.unlisten(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
ol.events.unlisten(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
||||||
@@ -941,6 +940,7 @@ ol.PluggableMap.prototype.handleTargetChanged_ = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!targetElement) {
|
if (!targetElement) {
|
||||||
|
this.renderer_.removeLayerRenderers();
|
||||||
ol.dom.removeNode(this.viewport_);
|
ol.dom.removeNode(this.viewport_);
|
||||||
if (this.handleResize_ !== undefined) {
|
if (this.handleResize_ !== undefined) {
|
||||||
window.removeEventListener(ol.events.EventType.RESIZE,
|
window.removeEventListener(ol.events.EventType.RESIZE,
|
||||||
|
|||||||
@@ -68,11 +68,11 @@ ol.renderer.Map.prototype.calculateMatrices2D = function(frameState) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* Removes all layer renderers.
|
||||||
*/
|
*/
|
||||||
ol.renderer.Map.prototype.disposeInternal = function() {
|
ol.renderer.Map.prototype.removeLayerRenderers = function() {
|
||||||
for (var id in this.layerRenderers_) {
|
for (var key in this.layerRenderers_) {
|
||||||
this.layerRenderers_[id].dispose();
|
this.removeLayerRendererByKey_(key).dispose();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user