diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 1a12c021aa..3370db2737 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -489,7 +489,7 @@ ol.render.canvas.Replay.prototype.replay_ = function( y = pixelCoordinates[d + 1]; roundX = (x + 0.5) | 0; roundY = (y + 0.5) | 0; - if (roundX !== prevX || roundY !== prevY) { + if (d == dd - 2 || roundX !== prevX || roundY !== prevY) { context.lineTo(x, y); prevX = roundX; prevY = roundY; diff --git a/test_rendering/spec/ol/layer/expected/vector-canvas.png b/test_rendering/spec/ol/layer/expected/vector-canvas.png index cd2d1e86ce..69ed07ca4e 100644 Binary files a/test_rendering/spec/ol/layer/expected/vector-canvas.png and b/test_rendering/spec/ol/layer/expected/vector-canvas.png differ diff --git a/test_rendering/spec/ol/layer/vector.test.js b/test_rendering/spec/ol/layer/vector.test.js index 36736c9c34..95a7d5a678 100644 --- a/test_rendering/spec/ol/layer/vector.test.js +++ b/test_rendering/spec/ol/layer/vector.test.js @@ -49,6 +49,15 @@ describe('ol.rendering.layer.Vector', function() { it('renders correctly with the canvas renderer', function(done) { map = createMap('canvas'); + var smallLine = new ol.Feature(new ol.geom.LineString([ + [center[0], center[1] - 1], + [center[0], center[1] + 1] + ])); + smallLine.setStyle(new ol.style.Style({ + zIndex: -99, + stroke: new ol.style.Stroke({width: 75, color: 'red'}) + })); + source.addFeature(smallLine); addPolygon(100); addCircle(200); addPolygon(250);