Render vector tile layers to a single canvas

This commit is contained in:
Andreas Hocevar
2019-10-31 20:13:49 +01:00
parent 5dec336f94
commit bb2bdb17aa
10 changed files with 15 additions and 133 deletions
-7
View File
@@ -98,11 +98,9 @@ class CompositeMapRenderer extends MapRenderer {
const viewState = frameState.viewState;
this.children_.length = 0;
let hasOverlay = false;
let previousElement = null;
for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {
const layerState = layerStatesArray[i];
hasOverlay = hasOverlay || layerState.hasOverlay;
frameState.layerIndex = i;
if (!inView(layerState, viewState) ||
(layerState.sourceState != SourceState.READY && layerState.sourceState != SourceState.UNDEFINED)) {
@@ -114,13 +112,8 @@ class CompositeMapRenderer extends MapRenderer {
if (!element) {
continue;
}
const childElementCount = element.childElementCount;
if ((element !== previousElement || i == ii - 1) && childElementCount === 2 && !hasOverlay) {
element.removeChild(element.lastElementChild);
}
if (element !== previousElement) {
this.children_.push(element);
hasOverlay = childElementCount === 2;
previousElement = element;
}
}