Make ol.CoverageArea use composition rather than inheritance for extent
This commit is contained in:
@@ -6,17 +6,16 @@ goog.require('ol.Extent');
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends {ol.Extent}
|
||||
* @param {number} minX Minimum X.
|
||||
* @param {number} minY Minimum Y.
|
||||
* @param {number} maxX Maximum X.
|
||||
* @param {number} maxY Maximum Y.
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @param {number} minZ Minimum 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}
|
||||
@@ -29,7 +28,6 @@ ol.CoverageArea = function(minX, minY, maxX, maxY, minZ, maxZ) {
|
||||
this.maxZ = maxZ;
|
||||
|
||||
};
|
||||
goog.inherits(ol.CoverageArea, ol.Extent);
|
||||
|
||||
|
||||
/**
|
||||
@@ -38,17 +36,15 @@ goog.inherits(ol.CoverageArea, ol.Extent);
|
||||
* @return {boolean} Intersects.
|
||||
*/
|
||||
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.
|
||||
* @return {ol.CoverageArea} Transformed coverage area.
|
||||
*/
|
||||
ol.CoverageArea.prototype.transform = function(transformFn) {
|
||||
var min = transformFn(new ol.Coordinate(this.minX, this.minY));
|
||||
var max = transformFn(new ol.Coordinate(this.maxX, this.maxY));
|
||||
return new ol.CoverageArea(min.x, min.y, max.x, max.y, this.minZ, this.maxZ);
|
||||
var extent = this.extent.transform(transformFn);
|
||||
return new ol.CoverageArea(extent, this.minZ, this.maxZ);
|
||||
};
|
||||
|
||||
@@ -162,10 +162,10 @@ ol.tilestore.BingMaps.prototype.handleImageryMetadataResponse =
|
||||
imageryProvider.coverageAreas,
|
||||
function(coverageArea) {
|
||||
var bbox = coverageArea.bbox;
|
||||
var extent = new ol.Extent(bbox[0], bbox[1], bbox[2], bbox[3]);
|
||||
var minZ = coverageArea.zoomMin;
|
||||
var maxZ = coverageArea.zoomMax;
|
||||
return new ol.CoverageArea(
|
||||
bbox[0], bbox[1], bbox[2], bbox[3], minZ, maxZ);
|
||||
return new ol.CoverageArea(extent, minZ, maxZ);
|
||||
});
|
||||
return new ol.Attribution(html, coverageAreas, projection);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user