Adjust tiles if already rendered.

This commit is contained in:
Tim Schaub
2012-06-23 01:59:20 +02:00
parent a6069bb78e
commit b6cfeecdfb
+9 -7
View File
@@ -118,6 +118,7 @@ ol.renderer.TileLayerRenderer.prototype.draw = function(center, resolution) {
if (resolution !== this.renderedResolution_) { if (resolution !== this.renderedResolution_) {
this.changeResolution_(center, resolution); this.changeResolution_(center, resolution);
} }
this.renderedResolution_ = resolution;
var pair = this.getPreferredResAndZ_(resolution); var pair = this.getPreferredResAndZ_(resolution);
var tileResolution = pair[0]; var tileResolution = pair[0];
var tileZ = pair[1]; var tileZ = pair[1];
@@ -190,21 +191,22 @@ ol.renderer.TileLayerRenderer.prototype.draw = function(center, resolution) {
} else { } else {
pxTileBottom = pxTileTop + pxTileHeight; pxTileBottom = pxTileTop + pxTileHeight;
} }
if (!(xyz in this.renderedTiles_)) { tile = this.renderedTiles_[xyz];
if (!tile) {
tile = this.layer_.getTileForXYZ(tileX, tileY, tileZ); tile = this.layer_.getTileForXYZ(tileX, tileY, tileZ);
if (tile != null) { tile.load();
this.renderedTiles_[xyz] = tile;
img = tile.getImg(); img = tile.getImg();
fragment.appendChild(img);
} else {
img = tile.getImg();
}
img.style.top = pxTileTop + "px"; img.style.top = pxTileTop + "px";
img.style.left = pxTileLeft + "px"; img.style.left = pxTileLeft + "px";
if (scale !== 1) { if (scale !== 1) {
img.style.height = (pxTileRight - pxTileLeft) + "px"; img.style.height = (pxTileRight - pxTileLeft) + "px";
img.style.width = (pxTileBottom - pxTileTop) + "px"; img.style.width = (pxTileBottom - pxTileTop) + "px";
} }
tile.load();
fragment.appendChild(img);
this.renderedTiles_[xyz] = tile;
}
}
pxTileTop = pxTileBottom; pxTileTop = pxTileBottom;
} }
pxTileLeft = pxTileRight; pxTileLeft = pxTileRight;