From 24d4fdc1bd0a579276aae125ee7dfada18b1c503 Mon Sep 17 00:00:00 2001 From: Paul Spencer Date: Wed, 21 Nov 2007 20:14:50 +0000 Subject: [PATCH] apply patch from #1106, minor tweaks for performance. (Closes #1106) git-svn-id: http://svn.openlayers.org/trunk/openlayers@5243 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Layer/Grid.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/OpenLayers/Layer/Grid.js b/lib/OpenLayers/Layer/Grid.js index a7db5bfa13..6bb45b9df4 100644 --- a/lib/OpenLayers/Layer/Grid.js +++ b/lib/OpenLayers/Layer/Grid.js @@ -340,6 +340,10 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { var startLon = tileoffsetlon; var rowidx = 0; + + var layerContainerDivLeft = parseInt(this.map.layerContainerDiv.style.left); + var layerContainerDivTop = parseInt(this.map.layerContainerDiv.style.top); + do { var row = this.grid[rowidx++]; @@ -360,10 +364,10 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { tileoffsetlat + tilelat); var x = tileoffsetx; - x -= parseInt(this.map.layerContainerDiv.style.left); + x -= layerContainerDivLeft; var y = tileoffsety; - y -= parseInt(this.map.layerContainerDiv.style.top); + y -= layerContainerDivTop; var px = new OpenLayers.Pixel(x, y); var tile = row[colidx++]; @@ -560,13 +564,14 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { */ shiftRow:function(prepend) { var modelRowIndex = (prepend) ? 0 : (this.grid.length - 1); - var modelRow = this.grid[modelRowIndex]; + var grid = this.grid; + var modelRow = grid[modelRowIndex]; var resolution = this.map.getResolution(); var deltaY = (prepend) ? -this.tileSize.h : this.tileSize.h; var deltaLat = resolution * -deltaY; - var row = (prepend) ? this.grid.pop() : this.grid.shift(); + var row = (prepend) ? grid.pop() : grid.shift(); for (var i=0; i < modelRow.length; i++) { var modelTile = modelRow[i]; @@ -579,9 +584,9 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { } if (prepend) { - this.grid.unshift(row); + grid.unshift(row); } else { - this.grid.push(row); + grid.push(row); } }, @@ -612,9 +617,9 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { var tile = prepend ? this.grid[i].pop() : this.grid[i].shift(); tile.moveTo(bounds, position); if (prepend) { - this.grid[i].unshift(tile); + row.unshift(tile); } else { - this.grid[i].push(tile); + row.push(tile); } } },