Fix clip extent calculation for tile layers
This commit is contained in:
@@ -240,7 +240,8 @@ ol.renderer.canvas.TileLayer.prototype.renderTileImages = function(context, fram
|
|||||||
|
|
||||||
var hasRenderListeners = layer.hasListener(ol.render.EventType.RENDER);
|
var hasRenderListeners = layer.hasListener(ol.render.EventType.RENDER);
|
||||||
var renderContext = context;
|
var renderContext = context;
|
||||||
var drawOffsetX, drawOffsetY, drawScale, drawSize;
|
var drawScale = 1;
|
||||||
|
var drawOffsetX, drawOffsetY, drawSize;
|
||||||
if (rotation || hasRenderListeners) {
|
if (rotation || hasRenderListeners) {
|
||||||
renderContext = this.context;
|
renderContext = this.context;
|
||||||
var renderCanvas = renderContext.canvas;
|
var renderCanvas = renderContext.canvas;
|
||||||
@@ -294,14 +295,18 @@ ol.renderer.canvas.TileLayer.prototype.renderTileImages = function(context, fram
|
|||||||
var ox = drawOffsetX || 0;
|
var ox = drawOffsetX || 0;
|
||||||
var oy = drawOffsetY || 0;
|
var oy = drawOffsetY || 0;
|
||||||
renderContext.save();
|
renderContext.save();
|
||||||
var cx = (renderContext.canvas.width * pixelRatio) / 2;
|
var cx = (renderContext.canvas.width) / 2;
|
||||||
var cy = (renderContext.canvas.height * pixelRatio) / 2;
|
var cy = (renderContext.canvas.height) / 2;
|
||||||
ol.render.canvas.rotateAtOffset(renderContext, -rotation, cx, cy);
|
ol.render.canvas.rotateAtOffset(renderContext, -rotation, cx, cy);
|
||||||
renderContext.beginPath();
|
renderContext.beginPath();
|
||||||
renderContext.moveTo(topLeft[0] * pixelRatio + ox, topLeft[1] * pixelRatio + oy);
|
renderContext.moveTo(drawScale * (topLeft[0] * pixelRatio + ox),
|
||||||
renderContext.lineTo(topRight[0] * pixelRatio + ox, topRight[1] * pixelRatio + oy);
|
drawScale * (topLeft[1] * pixelRatio + oy));
|
||||||
renderContext.lineTo(bottomRight[0] * pixelRatio + ox, bottomRight[1] * pixelRatio + oy);
|
renderContext.lineTo(drawScale * (topRight[0] * pixelRatio + ox),
|
||||||
renderContext.lineTo(bottomLeft[0] * pixelRatio + ox, bottomLeft[1] * pixelRatio + oy);
|
drawScale * (topRight[1] * pixelRatio + oy));
|
||||||
|
renderContext.lineTo(drawScale * (bottomRight[0] * pixelRatio + ox),
|
||||||
|
drawScale * (bottomRight[1] * pixelRatio + oy));
|
||||||
|
renderContext.lineTo(drawScale * (bottomLeft[0] * pixelRatio + ox),
|
||||||
|
drawScale * (bottomLeft[1] * pixelRatio + oy));
|
||||||
renderContext.clip();
|
renderContext.clip();
|
||||||
ol.render.canvas.rotateAtOffset(renderContext, rotation, cx, cy);
|
ol.render.canvas.rotateAtOffset(renderContext, rotation, cx, cy);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user