Reuse containers for tile, vector and vector tile layers

This commit is contained in:
ahocevar
2019-05-17 22:25:13 +02:00
parent 930318ab7a
commit a55505b36a
5 changed files with 125 additions and 108 deletions

View File

@@ -9,6 +9,7 @@ import MapRenderer from './Map.js';
import SourceState from '../source/State.js';
import {replaceChildren} from '../dom.js';
import {labelCache} from '../render/canvas.js';
import {altShiftKeysOnly} from '../events/condition.js';
/**
@@ -87,7 +88,7 @@ class CompositeMapRenderer extends MapRenderer {
const viewResolution = frameState.viewState.resolution;
this.children_.length = 0;
let previousElement = null;
const previousElement = null;
for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {
const layerState = layerStatesArray[i];
if (!visibleAtResolution(layerState, viewResolution) ||
@@ -97,11 +98,8 @@ class CompositeMapRenderer extends MapRenderer {
const layer = layerState.layer;
const element = layer.render(frameState, previousElement);
if (element) {
previousElement = element;
if (element !== this.children_[this.children_.length - 1]) {
this.children_.push(element);
}
if (element !== previousElement) {
this.children_.push(element);
}
}
super.renderFrame(frameState);