From b82a24ef36d69101bd5eb7ed6ed6e63970ec6d2c Mon Sep 17 00:00:00 2001 From: tschaub Date: Fri, 30 Sep 2011 13:22:29 -0600 Subject: [PATCH] Determine how many worlds away we are instead of simply wrapping. --- lib/OpenLayers/Renderer/Canvas.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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];