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 =
|
ol.tilegrid.XYZ.prototype.forEachTileCoordParentTileRange =
|
||||||
function(tileCoord, callback, opt_obj) {
|
function(tileCoord, callback, opt_obj) {
|
||||||
var x = tileCoord.x;
|
var tileRange = new ol.TileRange(0, 0, tileCoord.x, tileCoord.y);
|
||||||
var y = tileCoord.y;
|
var z;
|
||||||
var z = tileCoord.z;
|
for (z = tileCoord.z - 1; z >= 0; --z) {
|
||||||
var tileRange;
|
tileRange.minX = tileRange.maxX >>= 1;
|
||||||
while (true) {
|
tileRange.minY = tileRange.maxY >>= 1;
|
||||||
z -= 1;
|
|
||||||
if (z < 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
x >>= 1;
|
|
||||||
y >>= 1;
|
|
||||||
tileRange = new ol.TileRange(x, y, x, y);
|
|
||||||
if (callback.call(opt_obj, z, tileRange)) {
|
if (callback.call(opt_obj, z, tileRange)) {
|
||||||
break;
|
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.
|
* @param {ol.TileCoord} tileCoord Tile coordinate.
|
||||||
* @return {boolean} Contains tile coordinate.
|
* @return {boolean} Contains tile coordinate.
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ describe('ol.source.XYZ', function() {
|
|||||||
tileCoord,
|
tileCoord,
|
||||||
function(z, tileRange) {
|
function(z, tileRange) {
|
||||||
zs.push(z);
|
zs.push(z);
|
||||||
tileRanges.push(tileRange);
|
tileRanges.push(tileRange.clone());
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user