Make ol.CoverageArea use composition rather than inheritance for extent

This commit is contained in:
Tom Payne
2012-08-01 19:23:21 +02:00
parent 2fc4b10492
commit b4183642ae
2 changed files with 11 additions and 15 deletions
+9 -13
View File
@@ -6,17 +6,16 @@ goog.require('ol.Extent');
/** /**
* @constructor * @constructor
* @extends {ol.Extent} * @param {ol.Extent} extent Extent.
* @param {number} minX Minimum X.
* @param {number} minY Minimum Y.
* @param {number} maxX Maximum X.
* @param {number} maxY Maximum Y.
* @param {number} minZ Minimum Z. * @param {number} minZ Minimum Z.
* @param {number} maxZ Maximum Z. * @param {number} maxZ Maximum Z.
*/ */
ol.CoverageArea = function(minX, minY, maxX, maxY, minZ, maxZ) { ol.CoverageArea = function(extent, minZ, maxZ) {
goog.base(this, minX, minY, maxX, maxY); /**
* @type {ol.Extent}
*/
this.extent = extent;
/** /**
* @type {number} * @type {number}
@@ -29,7 +28,6 @@ ol.CoverageArea = function(minX, minY, maxX, maxY, minZ, maxZ) {
this.maxZ = maxZ; this.maxZ = maxZ;
}; };
goog.inherits(ol.CoverageArea, ol.Extent);
/** /**
@@ -38,17 +36,15 @@ goog.inherits(ol.CoverageArea, ol.Extent);
* @return {boolean} Intersects. * @return {boolean} Intersects.
*/ */
ol.CoverageArea.prototype.intersectsWithZ = function(extent, z) { ol.CoverageArea.prototype.intersectsWithZ = function(extent, z) {
return this.intersects(extent) && this.minZ <= z && z <= this.maxZ; return this.extent.intersects(extent) && this.minZ <= z && z <= this.maxZ;
}; };
/** /**
* @override
* @param {ol.TransformFunction} transformFn Transform. * @param {ol.TransformFunction} transformFn Transform.
* @return {ol.CoverageArea} Transformed coverage area. * @return {ol.CoverageArea} Transformed coverage area.
*/ */
ol.CoverageArea.prototype.transform = function(transformFn) { ol.CoverageArea.prototype.transform = function(transformFn) {
var min = transformFn(new ol.Coordinate(this.minX, this.minY)); var extent = this.extent.transform(transformFn);
var max = transformFn(new ol.Coordinate(this.maxX, this.maxY)); return new ol.CoverageArea(extent, this.minZ, this.maxZ);
return new ol.CoverageArea(min.x, min.y, max.x, max.y, this.minZ, this.maxZ);
}; };
+2 -2
View File
@@ -162,10 +162,10 @@ ol.tilestore.BingMaps.prototype.handleImageryMetadataResponse =
imageryProvider.coverageAreas, imageryProvider.coverageAreas,
function(coverageArea) { function(coverageArea) {
var bbox = coverageArea.bbox; var bbox = coverageArea.bbox;
var extent = new ol.Extent(bbox[0], bbox[1], bbox[2], bbox[3]);
var minZ = coverageArea.zoomMin; var minZ = coverageArea.zoomMin;
var maxZ = coverageArea.zoomMax; var maxZ = coverageArea.zoomMax;
return new ol.CoverageArea( return new ol.CoverageArea(extent, minZ, maxZ);
bbox[0], bbox[1], bbox[2], bbox[3], minZ, maxZ);
}); });
return new ol.Attribution(html, coverageAreas, projection); return new ol.Attribution(html, coverageAreas, projection);
}); });