Merge pull request #4869 from klokantech/improve-reproj-precision

Improve precision of ol.reproj.render
This commit is contained in:
Petr Sloup
2016-02-19 09:14:32 +01:00
+6 -6
View File
@@ -128,17 +128,17 @@ ol.reproj.render = function(width, height, pixelRatio,
Math.round(pixelRatio * canvasWidthInUnits / sourceResolution), Math.round(pixelRatio * canvasWidthInUnits / sourceResolution),
Math.round(pixelRatio * canvasHeightInUnits / sourceResolution)); Math.round(pixelRatio * canvasHeightInUnits / sourceResolution));
stitchContext.scale(pixelRatio / sourceResolution, var stitchScale = pixelRatio / sourceResolution;
pixelRatio / sourceResolution);
stitchContext.translate(-sourceDataExtent[0], sourceDataExtent[3]);
sources.forEach(function(src, i, arr) { sources.forEach(function(src, i, arr) {
var xPos = src.extent[0]; var xPos = src.extent[0] - sourceDataExtent[0];
var yPos = -src.extent[3]; var yPos = -(src.extent[3] - sourceDataExtent[3]);
var srcWidth = ol.extent.getWidth(src.extent); var srcWidth = ol.extent.getWidth(src.extent);
var srcHeight = ol.extent.getHeight(src.extent); var srcHeight = ol.extent.getHeight(src.extent);
stitchContext.drawImage(src.image, xPos, yPos, srcWidth, srcHeight); stitchContext.drawImage(src.image,
xPos * stitchScale, yPos * stitchScale,
srcWidth * stitchScale, srcHeight * stitchScale);
}); });
var targetTopLeft = ol.extent.getTopLeft(targetExtent); var targetTopLeft = ol.extent.getTopLeft(targetExtent);