Reuse ol.TileRange object in forEachTileCoordParentTileRange
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user