From b02f47a5a5afcdd6a2a771bf42cf9e2655b407e6 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Tue, 15 Oct 2013 22:05:36 -0600 Subject: [PATCH] Align pixels when drawing icons or shapes The floor before setting the transform ensures that we translate by integer pixels for odd and even dimenstions. The round before drawing the image ensures pixels are aligned. --- src/ol/renderer/canvas/canvasvectorrenderer.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorrenderer.js b/src/ol/renderer/canvas/canvasvectorrenderer.js index cebbb35729..8f5b2c6dd4 100644 --- a/src/ol/renderer/canvas/canvasvectorrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorrenderer.js @@ -238,8 +238,8 @@ ol.renderer.canvas.Vector.prototype.renderPointFeatures_ = return true; } - var midWidth = content.width / 2; - var midHeight = content.height / 2; + var midWidth = Math.floor(content.width / 2); + var midHeight = Math.floor(content.height / 2); var contentWidth = content.width * this.inverseScale_; var contentHeight = content.height * this.inverseScale_; var contentXOffset = xOffset * this.inverseScale_; @@ -276,7 +276,8 @@ ol.renderer.canvas.Vector.prototype.renderPointFeatures_ = point = components[j]; vec = [point.get(0), point.get(1), 0]; goog.vec.Mat4.multVec3(this.transform_, vec, vec); - context.drawImage(content, vec[0] + xOffset, vec[1] + yOffset, + context.drawImage(content, Math.round(vec[0] + xOffset), + Math.round(vec[1] + yOffset), content.width, content.height); } }