Merge pull request #153 from tschaub/extent

Care with transform
This commit is contained in:
Tim Schaub
2013-01-24 00:56:18 -08:00
2 changed files with 19 additions and 3 deletions

View File

@@ -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));
};

View File

@@ -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);
});
});
});