diff --git a/lib/OpenLayers/Renderer/Canvas.js b/lib/OpenLayers/Renderer/Canvas.js index 2d2f79e581..97b9741b9b 100644 --- a/lib/OpenLayers/Renderer/Canvas.js +++ b/lib/OpenLayers/Renderer/Canvas.js @@ -675,10 +675,11 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, { this.featureDx = 0; if (worldBounds) { bounds = feature.geometry.getBounds(); - if (!(bounds.intersectsBounds(this.extent))) { - var wrappedBounds = bounds.wrapDateLine(worldBounds); - this.featureDx = bounds.left - wrappedBounds.left; - } + var worldWidth = worldBounds.getWidth(); + var rendererCenterX = (this.extent.left + this.extent.right) / 2; + var featureCenterX = (bounds.left + bounds.right) / 2; + var worldsAway = Math.round((featureCenterX - rendererCenterX) / worldWidth); + this.featureDx = worldsAway * worldWidth; } style = this.features[id][1];