From 0381689fb62424247a39152dfe6ca9479419fbcc Mon Sep 17 00:00:00 2001 From: bill-chadwick Date: Wed, 4 Feb 2015 22:47:50 +0000 Subject: [PATCH] Resize the canvas when the tile size changes --- src/ol/renderer/canvas/canvastilelayerrenderer.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/canvas/canvastilelayerrenderer.js b/src/ol/renderer/canvas/canvastilelayerrenderer.js index 246d81e3d4..dcbadb162c 100644 --- a/src/ol/renderer/canvas/canvastilelayerrenderer.js +++ b/src/ol/renderer/canvas/canvastilelayerrenderer.js @@ -70,6 +70,12 @@ ol.renderer.canvas.TileLayer = function(tileLayer) { */ this.renderedCanvasZ_ = NaN; + /** + * @private + * @type {number} + */ + this.renderedTileSize_ = NaN; + /** * @private * @type {ol.TileRange} @@ -228,9 +234,11 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = context = this.context_; if (this.canvasSize_[0] < canvasWidth || this.canvasSize_[1] < canvasHeight || + this.renderedTileSize_ !== tilePixelSize || (this.canvasTooBig_ && (this.canvasSize_[0] > canvasWidth || this.canvasSize_[1] > canvasHeight))) { - // Canvas is too small, resize it. We never shrink the canvas, unless + // Canvas is too small or tileSize has changed, resize it. + // We never shrink the canvas, unless // we know that the current canvas size exceeds the maximum size canvas.width = canvasWidth; canvas.height = canvasHeight; @@ -257,6 +265,7 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = minY = tileRange.minY - Math.floor((canvasTileRangeHeight - tileRange.getHeight()) / 2); this.renderedCanvasZ_ = z; + this.renderedTileSize_ = tilePixelSize; this.renderedCanvasTileRange_ = new ol.TileRange( minX, minX + canvasTileRangeWidth - 1, minY, minY + canvasTileRangeHeight - 1);