@@ -94,7 +94,8 @@ ol.Extent.prototype.getTopRight = function() {
|
||||
* @return {ol.Extent} Extent.
|
||||
*/
|
||||
ol.Extent.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.Extent(min.x, min.y, max.x, max.y);
|
||||
var a = transformFn(new ol.Coordinate(this.minX, this.minY));
|
||||
var b = transformFn(new ol.Coordinate(this.maxX, this.maxY));
|
||||
return new ol.Extent(Math.min(a.x, b.x), Math.min(a.y, b.y),
|
||||
Math.max(a.x, b.x), Math.max(a.y, b.y));
|
||||
};
|
||||
|
||||
@@ -55,6 +55,21 @@ describe('ol.Extent', function() {
|
||||
expect(destinationExtent.maxX).toRoughlyEqual(5009377.085697311, 1e-9);
|
||||
expect(destinationExtent.maxY).toRoughlyEqual(8399737.889818361, 1e-9);
|
||||
});
|
||||
|
||||
it('takes arbitrary function', function() {
|
||||
var transformFn = function(coordinate) {
|
||||
return new ol.Coordinate(-coordinate.x, -coordinate.y);
|
||||
};
|
||||
var sourceExtent = new ol.Extent(-15, -30, 45, 60);
|
||||
var destinationExtent = sourceExtent.transform(transformFn);
|
||||
expect(destinationExtent).not.toBeUndefined();
|
||||
expect(destinationExtent).not.toBeNull();
|
||||
expect(destinationExtent.minX).toBe(-45);
|
||||
expect(destinationExtent.minY).toBe(-60);
|
||||
expect(destinationExtent.maxX).toBe(15);
|
||||
expect(destinationExtent.maxY).toBe(30);
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user