Reuse ol.TileRange object in forEachTileCoordParentTileRange

This commit is contained in:
Tom Payne
2013-03-24 13:46:23 +01:00
parent 3fbf7b8c20
commit 5771057ae1
3 changed files with 14 additions and 13 deletions

View File

@@ -39,18 +39,11 @@ goog.inherits(ol.tilegrid.XYZ, ol.tilegrid.TileGrid);
*/
ol.tilegrid.XYZ.prototype.forEachTileCoordParentTileRange =
function(tileCoord, callback, opt_obj) {
var x = tileCoord.x;
var y = tileCoord.y;
var z = tileCoord.z;
var tileRange;
while (true) {
z -= 1;
if (z < 0) {
break;
}
x >>= 1;
y >>= 1;
tileRange = new ol.TileRange(x, y, x, y);
var tileRange = new ol.TileRange(0, 0, tileCoord.x, tileCoord.y);
var z;
for (z = tileCoord.z - 1; z >= 0; --z) {
tileRange.minX = tileRange.maxX >>= 1;
tileRange.minY = tileRange.maxY >>= 1;
if (callback.call(opt_obj, z, tileRange)) {
break;
}

View File

@@ -64,6 +64,14 @@ ol.TileRange.boundingTileRange = function(var_args) {
};
/**
* @return {ol.TileRange} Clone.
*/
ol.TileRange.prototype.clone = function() {
return new ol.TileRange(this.minX, this.minY, this.maxX, this.maxY);
};
/**
* @param {ol.TileCoord} tileCoord Tile coordinate.
* @return {boolean} Contains tile coordinate.

View File

@@ -86,7 +86,7 @@ describe('ol.source.XYZ', function() {
tileCoord,
function(z, tileRange) {
zs.push(z);
tileRanges.push(tileRange);
tileRanges.push(tileRange.clone());
return false;
});