From b0a7badc8f56ea57b09abc2b88cec1c1aee58db5 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Thu, 24 Jan 2013 17:29:21 +0100 Subject: [PATCH] Started on proper date line wrapping What we want in the end is vector tiles repeated just as raster tiles. This change only avoids repeated tiles with the same content being rendered and stored in the cache. --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 354f430052..d6bdabd8f8 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -222,6 +222,9 @@ ol.renderer.canvas.VectorLayer.prototype.renderFrame = var sketchCanvasRenderer = new ol.renderer.canvas.Renderer( sketchCanvas, sketchTransform); var renderedFeatures = {}; + // TODO: wrap date line properly + var numCols = Math.ceil((tileRangeExtent.maxX - tileRangeExtent.minX) / + tileSize.width / tileResolution); var tile, tileContext, tileCoord, key, tileExtent, tileState, x, y; // render features by geometry type var filters = this.geometryFilters_, @@ -229,7 +232,7 @@ ol.renderer.canvas.VectorLayer.prototype.renderFrame = i, filter, type, features, symbolizer; for (x = tileRange.minX; x <= tileRange.maxX; ++x) { for (y = tileRange.minY; y <= tileRange.maxY; ++y) { - tileCoord = new ol.TileCoord(z, x, y); + tileCoord = new ol.TileCoord(z, goog.math.modulo(x, numCols), y); key = tileCoord.toString(); tile = this.tileCache_[key]; tileExtent = tileGrid.getTileCoordExtent(tileCoord);