diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 0f86efa3fa..d3c96591bf 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -144,8 +144,11 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { y = (y + 0.5) | 0; } if (state.scale != 1 || state.rotation !== 0) { + var centerX = x + state.anchorX; + var centerY = y + state.anchorY; ol.vec.Mat4.makeTransform2D(localTransform, - x, y, state.scale, state.scale, state.rotation, -x, -y); + centerX, centerY, state.scale, state.scale, + state.rotation, -centerX, -centerY); context.setTransform( goog.vec.Mat4.getElement(localTransform, 0, 0), goog.vec.Mat4.getElement(localTransform, 1, 0), diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index b526a6bed8..9b69bb1c55 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -227,8 +227,11 @@ ol.render.canvas.Replay.prototype.replay_ = y = (y + 0.5) | 0; } if (scale != 1 || rotation !== 0) { + var centerX = x + anchorX; + var centerY = y + anchorY; ol.vec.Mat4.makeTransform2D( - localTransform, x, y, scale, scale, rotation, -x, -y); + localTransform, centerX, centerY, scale, scale, + rotation, -centerX, -centerY); context.setTransform( goog.vec.Mat4.getElement(localTransform, 0, 0), goog.vec.Mat4.getElement(localTransform, 1, 0),