From 3e8c8791d08d9a5ffce82453564b4969684dc530 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Wed, 14 Dec 2016 23:51:23 +0100 Subject: [PATCH] Take image pixel ratio into account for rendered resolution --- src/ol/renderer/canvas/imagelayer.js | 2 +- src/ol/renderer/canvas/tilelayer.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ol/renderer/canvas/imagelayer.js b/src/ol/renderer/canvas/imagelayer.js index 063cf3dd62..8513a9e7ed 100644 --- a/src/ol/renderer/canvas/imagelayer.js +++ b/src/ol/renderer/canvas/imagelayer.js @@ -89,7 +89,6 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = function(frameState, laye var loaded = this.loadImage(image); if (loaded) { this.image_ = image; - this.renderedResolution = viewResolution; } } } @@ -115,6 +114,7 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = function(frameState, laye this.updateAttributions(frameState.attributions, image.getAttributions()); this.updateLogos(frameState, imageSource); + this.renderedResolution = viewResolution * pixelRatio / imagePixelRatio; } return !!this.image_; diff --git a/src/ol/renderer/canvas/tilelayer.js b/src/ol/renderer/canvas/tilelayer.js index 4a74231471..7100f4415b 100644 --- a/src/ol/renderer/canvas/tilelayer.js +++ b/src/ol/renderer/canvas/tilelayer.js @@ -208,17 +208,17 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = function(frameState, layer } this.renderedRevision = sourceRevision; - this.renderedResolution = tileResolution; + this.renderedResolution = tileResolution * pixelRatio / tilePixelRatio; this.renderedExtent_ = imageExtent; } - var scale = pixelRatio / tilePixelRatio * this.renderedResolution / viewResolution; + var scale = this.renderedResolution / viewResolution; var transform = ol.transform.compose(this.imageTransform_, pixelRatio * size[0] / 2, pixelRatio * size[1] / 2, scale, scale, 0, - tilePixelRatio * (this.renderedExtent_[0] - viewCenter[0]) / this.renderedResolution, - tilePixelRatio * (viewCenter[1] - this.renderedExtent_[3]) / this.renderedResolution); + (this.renderedExtent_[0] - viewCenter[0]) / this.renderedResolution * pixelRatio, + (viewCenter[1] - this.renderedExtent_[3]) / this.renderedResolution * pixelRatio); ol.transform.compose(this.coordinateToCanvasPixelTransform, pixelRatio * size[0] / 2 - transform[4], pixelRatio * size[1] / 2 - transform[5], pixelRatio / viewResolution, -pixelRatio / viewResolution,