Base ol.TileBounds on ol.Rectangle instead of goog.math.Box
This commit is contained in:
+40
-37
@@ -1,28 +1,52 @@
|
||||
goog.provide('ol.TileBounds');
|
||||
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.math.Box');
|
||||
goog.require('ol.Rectangle');
|
||||
goog.require('ol.TileCoord');
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends {goog.math.Box}
|
||||
* @param {number} top Top.
|
||||
* @param {number} right Right.
|
||||
* @param {number} bottom Bottom.
|
||||
* @param {number} left Left.
|
||||
* @extends {ol.Rectangle}
|
||||
* @param {number} minX Minimum X.
|
||||
* @param {number} minY Minimum Y.
|
||||
* @param {number} maxX Maximum X.
|
||||
* @param {number} maxY Maximum Y.
|
||||
*/
|
||||
ol.TileBounds = function(top, right, bottom, left) {
|
||||
|
||||
goog.asserts.assert(top <= bottom);
|
||||
goog.asserts.assert(left <= right);
|
||||
|
||||
goog.base(this, top, right, bottom, left);
|
||||
|
||||
ol.TileBounds = function(minX, minY, maxX, maxY) {
|
||||
goog.base(this, minX, minY, maxX, maxY);
|
||||
};
|
||||
goog.inherits(ol.TileBounds, ol.Rectangle);
|
||||
|
||||
|
||||
/**
|
||||
* @param {...ol.TileCoord} var_args Tile coordinates.
|
||||
* @return {!ol.TileBounds} Bounding tile box.
|
||||
*/
|
||||
ol.TileBounds.boundingTileBounds = function(var_args) {
|
||||
var tileCoord0 = arguments[0];
|
||||
var tileBounds = new ol.TileBounds(tileCoord0.x, tileCoord0.y,
|
||||
tileCoord0.x, tileCoord0.y);
|
||||
var i;
|
||||
for (i = 1; i < arguments.length; ++i) {
|
||||
var tileCoord = arguments[i];
|
||||
goog.asserts.assert(tileCoord.z == tileCoord0.z);
|
||||
tileBounds.minX = Math.min(tileBounds.minX, tileCoord.x);
|
||||
tileBounds.minY = Math.min(tileBounds.minY, tileCoord.y);
|
||||
tileBounds.maxX = Math.max(tileBounds.maxX, tileCoord.x);
|
||||
tileBounds.maxY = Math.max(tileBounds.maxY, tileCoord.y);
|
||||
}
|
||||
return tileBounds;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.TileBounds} Clone.
|
||||
*/
|
||||
ol.TileBounds.prototype.clone = function() {
|
||||
return new ol.TileBounds(this.minX, this.minY, this.maxX, this.maxY);
|
||||
};
|
||||
goog.inherits(ol.TileBounds, goog.math.Box);
|
||||
|
||||
|
||||
/**
|
||||
@@ -34,9 +58,9 @@ goog.inherits(ol.TileBounds, goog.math.Box);
|
||||
ol.TileBounds.prototype.forEachTileCoord = function(z, f, opt_obj) {
|
||||
var tileCoord = new ol.TileCoord(z, 0, 0);
|
||||
var x, y;
|
||||
for (x = this.left; x <= this.right; ++x) {
|
||||
for (x = this.minX; x <= this.maxX; ++x) {
|
||||
tileCoord.x = x;
|
||||
for (y = this.top; y <= this.bottom; ++y) {
|
||||
for (y = this.minY; y <= this.maxY; ++y) {
|
||||
tileCoord.y = y;
|
||||
if (f.call(opt_obj, tileCoord)) {
|
||||
return;
|
||||
@@ -47,24 +71,3 @@ ol.TileBounds.prototype.forEachTileCoord = function(z, f, opt_obj) {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {...ol.TileCoord} var_args Tile coordinates.
|
||||
* @return {!ol.TileBounds} Bounding tile box.
|
||||
*/
|
||||
ol.TileBounds.boundingTileBounds = function(var_args) {
|
||||
var tileCoord0 = arguments[0];
|
||||
var tileBounds = new ol.TileBounds(tileCoord0.y, tileCoord0.x,
|
||||
tileCoord0.y, tileCoord0.x);
|
||||
var i;
|
||||
for (i = 1; i < arguments.length; ++i) {
|
||||
var tileCoord = arguments[i];
|
||||
goog.asserts.assert(tileCoord.z == tileCoord0.z);
|
||||
tileBounds.top = Math.min(tileBounds.top, tileCoord.y);
|
||||
tileBounds.right = Math.max(tileBounds.right, tileCoord.x);
|
||||
tileBounds.bottom = Math.max(tileBounds.bottom, tileCoord.y);
|
||||
tileBounds.left = Math.min(tileBounds.left, tileCoord.x);
|
||||
}
|
||||
return tileBounds;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user