From 19bceff07788d663fd7ec3f56f44026b72458d3b Mon Sep 17 00:00:00 2001 From: Ron Young Date: Thu, 30 Nov 2017 14:23:42 -0600 Subject: [PATCH] Check forward/back 1 world if wrapping --- src/ol/renderer/canvas/vectorlayer.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/canvas/vectorlayer.js b/src/ol/renderer/canvas/vectorlayer.js index 173bef5b37a..4f971b20c7c 100644 --- a/src/ol/renderer/canvas/vectorlayer.js +++ b/src/ol/renderer/canvas/vectorlayer.js @@ -181,11 +181,11 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = function(frameState, lay ol.render.canvas.rotateAtOffset(replayContext, -rotation, width / 2, height / 2); replayGroup.replay(replayContext, transform, rotation, skippedFeatureUids); - if (vectorSource.getWrapX() && projection.canWrapX() && - !ol.extent.containsExtent(projectionExtent, extent)) { + if (vectorSource.getWrapX() && projection.canWrapX()) { var startX = extent[0]; var worldWidth = ol.extent.getWidth(projectionExtent); var world = 0; + startX -= worldWidth; var offsetX; while (startX < projectionExtent[0]) { --world; @@ -196,6 +196,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = function(frameState, lay } world = 0; startX = extent[2]; + startX += worldWidth; while (startX > projectionExtent[2]) { ++world; offsetX = worldWidth * world; @@ -325,8 +326,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = function(frameState, lay vectorLayerRenderBuffer * resolution); var projectionExtent = viewState.projection.getExtent(); - if (vectorSource.getWrapX() && viewState.projection.canWrapX() && - !ol.extent.containsExtent(projectionExtent, frameState.extent)) { + if (vectorSource.getWrapX() && viewState.projection.canWrapX()) { // For the replay group, we need an extent that intersects the real world // (-180° to +180°). To support geometries in a coordinate range from -540° // to +540°, we add at least 1 world width on each side of the projection