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
This commit is contained in:
Paul Spencer
2007-11-21 20:14:50 +00:00
parent a13cacdde9
commit 24d4fdc1bd

View File

@@ -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);
}
}
},