Merge pull request #3591 from fredj/fixes-3589
Only draw the layer if visible and inside the resolution range
This commit is contained in:
@@ -22,6 +22,7 @@ var layers = [
|
|||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: layers,
|
layers: layers,
|
||||||
target: 'map',
|
target: 'map',
|
||||||
|
renderer: common.getRendererFromQueryString(),
|
||||||
view: new ol.View({
|
view: new ol.View({
|
||||||
center: [-10997148, 4569099],
|
center: [-10997148, 4569099],
|
||||||
zoom: 4
|
zoom: 4
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ goog.require('ol.RendererType');
|
|||||||
goog.require('ol.css');
|
goog.require('ol.css');
|
||||||
goog.require('ol.dom');
|
goog.require('ol.dom');
|
||||||
goog.require('ol.layer.Image');
|
goog.require('ol.layer.Image');
|
||||||
|
goog.require('ol.layer.Layer');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
goog.require('ol.render.Event');
|
goog.require('ol.render.Event');
|
||||||
@@ -232,6 +233,7 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) {
|
|||||||
this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, frameState);
|
this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, frameState);
|
||||||
|
|
||||||
var layerStatesArray = frameState.layerStatesArray;
|
var layerStatesArray = frameState.layerStatesArray;
|
||||||
|
var viewResolution = frameState.viewState.resolution;
|
||||||
var i, ii, layer, layerRenderer, layerState;
|
var i, ii, layer, layerRenderer, layerState;
|
||||||
for (i = 0, ii = layerStatesArray.length; i < ii; ++i) {
|
for (i = 0, ii = layerStatesArray.length; i < ii; ++i) {
|
||||||
layerState = layerStatesArray[i];
|
layerState = layerStatesArray[i];
|
||||||
@@ -241,7 +243,8 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) {
|
|||||||
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.dom.Layer,
|
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.dom.Layer,
|
||||||
'renderer is an instance of ol.renderer.dom.Layer');
|
'renderer is an instance of ol.renderer.dom.Layer');
|
||||||
addChild.call(this, layerRenderer.getTarget(), i);
|
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)) {
|
if (layerRenderer.prepareFrame(frameState, layerState)) {
|
||||||
layerRenderer.composeFrame(frameState, layerState);
|
layerRenderer.composeFrame(frameState, layerState);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user