From 8fd2fae0cb8f92a9cf9b7f06cad14805ec66b456 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 20 Apr 2015 12:15:34 +0200 Subject: [PATCH] Only draw the layer if visible and inside the resolution range --- src/ol/renderer/dom/dommaprenderer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index 01e296c1a0..ea2cb5ee6e 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -14,6 +14,7 @@ goog.require('ol.RendererType'); goog.require('ol.css'); goog.require('ol.dom'); goog.require('ol.layer.Image'); +goog.require('ol.layer.Layer'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.render.Event'); @@ -232,6 +233,7 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) { this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, frameState); var layerStatesArray = frameState.layerStatesArray; + var viewResolution = frameState.viewState.resolution; var i, ii, layer, layerRenderer, layerState; for (i = 0, ii = layerStatesArray.length; i < ii; ++i) { layerState = layerStatesArray[i]; @@ -241,7 +243,8 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) { goog.asserts.assertInstanceof(layerRenderer, ol.renderer.dom.Layer, 'renderer is an instance of ol.renderer.dom.Layer'); addChild.call(this, layerRenderer.getTarget(), i); - if (layerState.sourceState == ol.source.State.READY) { + if (ol.layer.Layer.visibleAtResolution(layerState, viewResolution) && + layerState.sourceState == ol.source.State.READY) { if (layerRenderer.prepareFrame(frameState, layerState)) { layerRenderer.composeFrame(frameState, layerState); }