diff --git a/examples/navigation-controls.js b/examples/navigation-controls.js index 4e88e5026d..d7cbb30d46 100644 --- a/examples/navigation-controls.js +++ b/examples/navigation-controls.js @@ -11,10 +11,8 @@ var map = new ol.Map({ controls: ol.control.defaults().extend([ new ol.control.ZoomToExtent({ extent: [ - 813079.7791264898, - 848966.9639063801, - 5929220.284081122, - 5936863.986909639 + 813079.7791264898, 5929220.284081122, + 848966.9639063801, 5936863.986909639 ] }) ]), diff --git a/examples/wms-custom-proj.js b/examples/wms-custom-proj.js index d354f92e73..8ea4cc8d87 100644 --- a/examples/wms-custom-proj.js +++ b/examples/wms-custom-proj.js @@ -12,10 +12,10 @@ goog.require('ol.source.TileWMS'); var projection = ol.proj.configureProj4jsProjection({ code: 'EPSG:21781', - extent: [485869.5728, 837076.5648, 76443.1884, 299941.7864] + extent: [485869.5728, 76443.1884, 837076.5648, 299941.7864] }); -var extent = [420000, 900000, 30000, 350000]; +var extent = [420000, 30000, 900000, 350000]; var layers = [ new ol.layer.Tile({ source: new ol.source.TileWMS({ diff --git a/examples/wms-image-custom-proj.js b/examples/wms-image-custom-proj.js index 8857bf3af3..460fd588fb 100644 --- a/examples/wms-image-custom-proj.js +++ b/examples/wms-image-custom-proj.js @@ -9,10 +9,10 @@ goog.require('ol.source.ImageWMS'); var projection = ol.proj.configureProj4jsProjection({ code: 'EPSG:21781', - extent: [485869.5728, 837076.5648, 76443.1884, 299941.7864] + extent: [485869.5728, 76443.1884, 837076.5648, 299941.7864] }); -var extent = [420000, 900000, 30000, 350000]; +var extent = [420000, 30000, 900000, 350000]; var layers = [ new ol.layer.Image({ source: new ol.source.ImageWMS({ diff --git a/examples/wms-image.js b/examples/wms-image.js index 00fa91464d..f6c753779e 100644 --- a/examples/wms-image.js +++ b/examples/wms-image.js @@ -15,7 +15,7 @@ var layers = [ source: new ol.source.ImageWMS({ url: 'http://demo.opengeo.org/geoserver/wms', params: {'LAYERS': 'topp:states'}, - extent: [-13884991, -7455066, 2870341, 6338219] + extent: [-13884991, 2870341, -7455066, 6338219] }) }) ]; diff --git a/examples/wms-tiled.js b/examples/wms-tiled.js index 70070656b2..1afc715f4f 100644 --- a/examples/wms-tiled.js +++ b/examples/wms-tiled.js @@ -14,7 +14,7 @@ var layers = [ source: new ol.source.TileWMS({ url: 'http://demo.opengeo.org/geoserver/wms', params: {'LAYERS': 'topp:states', 'TILED': true}, - extent: [-13884991, -7455066, 2870341, 6338219] + extent: [-13884991, 2870341, -7455066, 6338219] }) }) ]; diff --git a/examples/wmts-ign.js b/examples/wmts-ign.js index bd1dd80937..1136e1adca 100644 --- a/examples/wmts-ign.js +++ b/examples/wmts-ign.js @@ -75,8 +75,9 @@ xhr.onload = function() { } var view = new ol.View2D(); - view.fitExtent([257596.65942095537, 262082.55751844167, - 6250898.984085131, 6251854.446938695], map.getSize()); + view.fitExtent([ + 257596.65942095537, 6250898.984085131, + 262082.55751844167, 6251854.446938695], map.getSize()); map.setView(view); } }; diff --git a/examples/wmts.js b/examples/wmts.js index 055240d471..ff6efc6d51 100644 --- a/examples/wmts.js +++ b/examples/wmts.js @@ -39,7 +39,7 @@ var map = new ol.Map({ matrixIds: matrixIds }), style: '_null', - extent: [-13682835, -13667473, 5204068, 5221690] + extent: [-13682835, 5204068, -13667473, 5221690] }) }) ], diff --git a/src/ol/expr/expression.js b/src/ol/expr/expression.js index cdbe012936..b249d6d0cd 100644 --- a/src/ol/expr/expression.js +++ b/src/ol/expr/expression.js @@ -129,22 +129,22 @@ ol.expr.lib[ol.expr.functions.CONCAT] = function(var_args) { /** * Determine if a feature's extent intersects the provided extent. * @param {number} minX Minimum x-coordinate value. - * @param {number} maxX Maximum x-coordinate value. * @param {number} minY Minimum y-coordinate value. + * @param {number} maxX Maximum x-coordinate value. * @param {number} maxY Maximum y-coordinate value. * @param {string=} opt_projection Projection of the extent. * @param {string=} opt_attribute Name of the geometry attribute to use. * @return {boolean} The provided extent intersects the feature's extent. * @this {ol.Feature} */ -ol.expr.lib[ol.expr.functions.EXTENT] = function(minX, maxX, minY, maxY, +ol.expr.lib[ol.expr.functions.EXTENT] = function(minX, minY, maxX, maxY, opt_projection, opt_attribute) { var intersects = false; var geometry = goog.isDef(opt_attribute) ? this.get(opt_attribute) : this.getGeometry(); if (geometry) { intersects = ol.extent.intersects(geometry.getBounds(), - [minX, maxX, minY, maxY]); + [minX, minY, maxX, maxY]); } return intersects; }; diff --git a/src/ol/extent.js b/src/ol/extent.js index d99c7246c2..9627ea29a1 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -48,6 +48,17 @@ ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) { }; +/** + * Creates a clone of an extent. + * + * @param {ol.Extent} extent Extent to clone. + * @return {ol.Extent} The clone. + */ +ol.extent.clone = function(extent) { + return extent.slice(); +}; + + /** * Checks if the passed coordinate is contained or on the edge of the extent. * @@ -56,8 +67,8 @@ ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) { * @return {boolean} Contains. */ ol.extent.containsCoordinate = function(extent, coordinate) { - return extent[0] <= coordinate[0] && coordinate[0] <= extent[1] && - extent[2] <= coordinate[1] && coordinate[1] <= extent[3]; + return extent[0] <= coordinate[0] && coordinate[0] <= extent[2] && + extent[1] <= coordinate[1] && coordinate[1] <= extent[3]; }; @@ -69,8 +80,8 @@ ol.extent.containsCoordinate = function(extent, coordinate) { * @return {boolean} Contains. */ ol.extent.containsExtent = function(extent1, extent2) { - return extent1[0] <= extent2[0] && extent2[1] <= extent1[1] && - extent1[2] <= extent2[2] && extent2[3] <= extent1[3]; + return extent1[0] <= extent2[0] && extent2[2] <= extent1[2] && + extent1[1] <= extent2[1] && extent2[3] <= extent1[3]; }; @@ -78,7 +89,7 @@ ol.extent.containsExtent = function(extent1, extent2) { * @return {ol.Extent} Empty extent. */ ol.extent.createEmpty = function() { - return [Infinity, -Infinity, Infinity, -Infinity]; + return [Infinity, Infinity, -Infinity, -Infinity]; }; @@ -93,12 +104,12 @@ ol.extent.createEmpty = function() { ol.extent.createOrUpdate = function(minX, maxX, minY, maxY, opt_extent) { if (goog.isDef(opt_extent)) { opt_extent[0] = minX; - opt_extent[1] = maxX; - opt_extent[2] = minY; + opt_extent[2] = maxX; + opt_extent[1] = minY; opt_extent[3] = maxY; return opt_extent; } else { - return [minX, maxX, minY, maxY]; + return [minX, minY, maxX, maxY]; } }; @@ -109,8 +120,8 @@ ol.extent.createOrUpdate = function(minX, maxX, minY, maxY, opt_extent) { * @return {ol.Extent} Extent. */ ol.extent.empty = function(extent) { - extent[0] = extent[2] = Infinity; - extent[1] = extent[3] = -Infinity; + extent[0] = extent[1] = Infinity; + extent[2] = extent[3] = -Infinity; return extent; }; @@ -121,8 +132,8 @@ ol.extent.empty = function(extent) { * @return {boolean} Equals. */ ol.extent.equals = function(extent1, extent2) { - return extent1[0] == extent2[0] && extent1[1] == extent2[1] && - extent1[2] == extent2[2] && extent1[3] == extent2[3]; + return extent1[0] == extent2[0] && extent1[2] == extent2[2] && + extent1[1] == extent2[1] && extent1[3] == extent2[3]; }; @@ -134,12 +145,12 @@ ol.extent.extend = function(extent1, extent2) { if (extent2[0] < extent1[0]) { extent1[0] = extent2[0]; } - if (extent2[1] > extent1[1]) { - extent1[1] = extent2[1]; - } - if (extent2[2] < extent1[2]) { + if (extent2[2] > extent1[2]) { extent1[2] = extent2[2]; } + if (extent2[1] < extent1[1]) { + extent1[1] = extent2[1]; + } if (extent2[3] > extent1[3]) { extent1[3] = extent2[3]; } @@ -154,11 +165,11 @@ ol.extent.extendCoordinate = function(extent, coordinate) { if (coordinate[0] < extent[0]) { extent[0] = coordinate[0]; } - if (coordinate[0] > extent[1]) { - extent[1] = coordinate[0]; + if (coordinate[0] > extent[2]) { + extent[2] = coordinate[0]; } - if (coordinate[1] < extent[2]) { - extent[2] = coordinate[1]; + if (coordinate[1] < extent[1]) { + extent[1] = coordinate[1]; } if (coordinate[1] > extent[3]) { extent[3] = coordinate[1]; @@ -171,7 +182,7 @@ ol.extent.extendCoordinate = function(extent, coordinate) { * @return {ol.Coordinate} Bottom left coordinate. */ ol.extent.getBottomLeft = function(extent) { - return [extent[0], extent[2]]; + return [extent[0], extent[1]]; }; @@ -180,7 +191,7 @@ ol.extent.getBottomLeft = function(extent) { * @return {ol.Coordinate} Bottom right coordinate. */ ol.extent.getBottomRight = function(extent) { - return [extent[1], extent[2]]; + return [extent[2], extent[1]]; }; @@ -189,7 +200,7 @@ ol.extent.getBottomRight = function(extent) { * @return {ol.Coordinate} Center. */ ol.extent.getCenter = function(extent) { - return [(extent[0] + extent[1]) / 2, (extent[2] + extent[3]) / 2]; + return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2]; }; @@ -227,7 +238,7 @@ ol.extent.getForView2DAndSize = * @return {number} Height. */ ol.extent.getHeight = function(extent) { - return extent[3] - extent[2]; + return extent[3] - extent[1]; }; @@ -236,7 +247,7 @@ ol.extent.getHeight = function(extent) { * @return {ol.Size} Size. */ ol.extent.getSize = function(extent) { - return [extent[1] - extent[0], extent[3] - extent[2]]; + return [extent[2] - extent[0], extent[3] - extent[1]]; }; @@ -254,7 +265,7 @@ ol.extent.getTopLeft = function(extent) { * @return {ol.Coordinate} Top right coordinate. */ ol.extent.getTopRight = function(extent) { - return [extent[1], extent[3]]; + return [extent[2], extent[3]]; }; @@ -263,7 +274,7 @@ ol.extent.getTopRight = function(extent) { * @return {number} Width. */ ol.extent.getWidth = function(extent) { - return extent[1] - extent[0]; + return extent[2] - extent[0]; }; @@ -273,10 +284,10 @@ ol.extent.getWidth = function(extent) { * @return {boolean} Intersects. */ ol.extent.intersects = function(extent1, extent2) { - return extent1[0] <= extent2[1] && - extent1[1] >= extent2[0] && - extent1[2] <= extent2[3] && - extent1[3] >= extent2[2]; + return extent1[0] <= extent2[2] && + extent1[2] >= extent2[0] && + extent1[1] <= extent2[3] && + extent1[3] >= extent2[1]; }; @@ -285,7 +296,7 @@ ol.extent.intersects = function(extent1, extent2) { * @return {boolean} Is empty. */ ol.extent.isEmpty = function(extent) { - return extent[1] < extent[0] || extent[3] < extent[2]; + return extent[2] < extent[0] || extent[3] < extent[1]; }; @@ -296,8 +307,8 @@ ol.extent.isEmpty = function(extent) { */ ol.extent.normalize = function(extent, coordinate) { return [ - (coordinate[0] - extent[0]) / (extent[1] - extent[0]), - (coordinate[1] - extent[2]) / (extent[3] - extent[2]) + (coordinate[0] - extent[0]) / (extent[2] - extent[0]), + (coordinate[1] - extent[1]) / (extent[3] - extent[1]) ]; }; @@ -307,11 +318,11 @@ ol.extent.normalize = function(extent, coordinate) { * @param {number} value Value. */ ol.extent.scaleFromCenter = function(extent, value) { - var deltaX = ((extent[1] - extent[0]) / 2) * (value - 1); - var deltaY = ((extent[3] - extent[2]) / 2) * (value - 1); + var deltaX = ((extent[2] - extent[0]) / 2) * (value - 1); + var deltaY = ((extent[3] - extent[1]) / 2) * (value - 1); extent[0] -= deltaX; - extent[1] += deltaX; - extent[2] -= deltaY; + extent[2] += deltaX; + extent[1] -= deltaY; extent[3] += deltaY; }; @@ -321,7 +332,8 @@ ol.extent.scaleFromCenter = function(extent, value) { * @return {string} String. */ ol.extent.toString = function(extent) { - return '(' + [extent[0], extent[1], extent[2], extent[3]].join(', ') + ')'; + return '(' + [extent[0], extent[2], extent[1], + extent[3]].join(', ') + ')'; }; @@ -333,10 +345,10 @@ ol.extent.toString = function(extent) { */ ol.extent.transform = function(extent, transformFn, opt_extent) { var coordinates = [ - extent[0], extent[2], + extent[0], extent[1], extent[0], extent[3], - extent[1], extent[2], - extent[1], extent[3] + extent[2], extent[1], + extent[2], extent[3] ]; transformFn(coordinates, coordinates, 2); var xs = [coordinates[0], coordinates[2], coordinates[4], coordinates[6]]; diff --git a/src/ol/geom/abstractcollection.js b/src/ol/geom/abstractcollection.js index 65bbef6dcd..eabe5972fd 100644 --- a/src/ol/geom/abstractcollection.js +++ b/src/ol/geom/abstractcollection.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.AbstractCollection'); +goog.require('ol.extent'); goog.require('ol.geom.Geometry'); @@ -38,22 +39,12 @@ goog.inherits(ol.geom.AbstractCollection, ol.geom.Geometry); */ ol.geom.AbstractCollection.prototype.getBounds = function() { if (goog.isNull(this.bounds)) { - var minX, - minY = minX = Infinity, - maxX, - maxY = maxX = -Infinity, - components = this.components, - len = components.length, - bounds, i; - - for (i = 0; i < len; ++i) { - bounds = components[i].getBounds(); - minX = Math.min(bounds[0], minX); - maxX = Math.max(bounds[1], maxX); - minY = Math.min(bounds[2], minY); - maxY = Math.max(bounds[3], maxY); + var bounds = ol.extent.createEmpty(); + var components = this.components; + for (var i = 0, ii = components.length; i < ii; ++i) { + ol.extent.extend(bounds, components[i].getBounds()); } - this.bounds = [minX, maxX, minY, maxY]; + this.bounds = bounds; } return this.bounds; }; diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index a24b6fbf50..682d474a18 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -126,7 +126,7 @@ ol.geom.LineString.prototype.getBounds = function() { maxY = y; } } - this.bounds_ = [minX, maxX, minY, maxY]; + this.bounds_ = [minX, minY, maxX, maxY]; } return this.bounds_; }; diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index f598aec16a..b65f21fc18 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -68,7 +68,7 @@ ol.geom.Point.prototype.getBounds = function() { if (goog.isNull(this.bounds_)) { var x = this.get(0), y = this.get(1); - this.bounds_ = [x, x, y, y]; + this.bounds_ = [x, y, x, y]; } return this.bounds_; }; diff --git a/src/ol/geom2/geom2.js b/src/ol/geom2/geom2.js index a2ce5de71d..1cdfd5228a 100644 --- a/src/ol/geom2/geom2.js +++ b/src/ol/geom2/geom2.js @@ -2,6 +2,7 @@ goog.provide('ol.geom2'); goog.require('goog.asserts'); goog.require('ol.Extent'); +goog.require('ol.extent'); /** @@ -10,22 +11,17 @@ goog.require('ol.Extent'); * @return {ol.Extent} Extent. */ ol.geom2.getExtent = function(buf, dim) { - var extent = new Array(2 * dim); - var extentIndex = 0; - var i; - for (i = 0; i < dim; ++i) { - extent[extentIndex++] = Infinity; - extent[extentIndex++] = -Infinity; - } + var extent = ol.extent.createEmpty(); var bufArr = buf.getArray(); buf.forEachRange(function(start, stop) { - var extentIndex, i, j; - for (i = start; i < stop; i += dim) { - extentIndex = 0; - for (j = 0; j < dim; ++j) { - extent[extentIndex++] = Math.min(extent[2 * j], bufArr[i + j]); - extent[extentIndex++] = Math.max(extent[2 * j + 1], bufArr[i + j]); - } + var x, y; + for (var i = start; i < stop; i += dim) { + x = bufArr[i]; + y = bufArr[i + 1]; + extent[0] = Math.min(extent[0], x); + extent[1] = Math.min(extent[1], y); + extent[2] = Math.max(extent[2], x); + extent[3] = Math.max(extent[3], y); } }); return extent; diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index 9df50bfe7e..01da071cd8 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -107,12 +107,15 @@ ol.layer.FeatureCache.prototype.getFeaturesObject = function(opt_expr) { } else if (name === ol.expr.functions.EXTENT) { var args = /** @type {ol.expr.Call} */ (opt_expr).getArgs(); goog.asserts.assert(args.length === 4); - var extent = []; for (var i = 0; i < 4; ++i) { goog.asserts.assert(args[i] instanceof ol.expr.Literal); - extent[i] = /** @type {ol.expr.Literal} */ (args[i]).evaluate(); - goog.asserts.assertNumber(extent[i]); } + var extent = [ + /** @type {ol.expr.Literal} */ (args[0]).evaluate(), + /** @type {ol.expr.Literal} */ (args[1]).evaluate(), + /** @type {ol.expr.Literal} */ (args[2]).evaluate(), + /** @type {ol.expr.Literal} */ (args[3]).evaluate() + ]; features = this.rTree_.searchReturningObject(extent); } else { // not a call expression, check logical @@ -133,13 +136,16 @@ ol.layer.FeatureCache.prototype.getFeaturesObject = function(opt_expr) { } else if (name === ol.expr.functions.EXTENT) { args = /** @type {ol.expr.Call} */ (expr).getArgs(); goog.asserts.assert(args.length === 4); - extent = []; for (var j = 0; j < 4; ++j) { goog.asserts.assert(args[j] instanceof ol.expr.Literal); - extent[j] = - /** @type {ol.expr.Literal} */ (args[j]).evaluate(); - goog.asserts.assertNumber(extent[j]); } + extent = [[ + /** @type {ol.expr.Literal} */ (args[0]).evaluate(), + /** @type {ol.expr.Literal} */ (args[1]).evaluate() + ], [ + /** @type {ol.expr.Literal} */ (args[2]).evaluate(), + /** @type {ol.expr.Literal} */ (args[3]).evaluate() + ]]; } } if (type && extent) { diff --git a/src/ol/parser/ogc/filterparser_v1_0_0.js b/src/ol/parser/ogc/filterparser_v1_0_0.js index ddaa2cd18a..b96b1d5552 100644 --- a/src/ol/parser/ogc/filterparser_v1_0_0.js +++ b/src/ol/parser/ogc/filterparser_v1_0_0.js @@ -92,9 +92,12 @@ ol.parser.ogc.Filter_v1_0_0 = function() { goog.asserts.assert(args[2] instanceof ol.expr.Literal); goog.asserts.assert(args[3] instanceof ol.expr.Literal); goog.asserts.assert(args[4] instanceof ol.expr.Literal); - var property = args[5], bbox = [args[0].getValue(), args[1].getValue(), - args[2].getValue(), args[3].getValue()], - projection = args[4].getValue(); + var bbox = [ + args[0].getValue(), args[1].getValue(), + args[2].getValue(), args[3].getValue() + ]; + var projection = args[4].getValue(); + var property = args[5]; // PropertyName is mandatory in 1.0.0, but e.g. GeoServer also // accepts filters without it. if (goog.isDefAndNotNull(property)) { @@ -129,8 +132,10 @@ ol.parser.ogc.Filter_v1_0_0.prototype.writeSpatial_ = function(filter, name) { goog.asserts.assert(args[1] instanceof ol.expr.Literal); goog.asserts.assert(args[2] instanceof ol.expr.Literal); goog.asserts.assert(args[3] instanceof ol.expr.Literal); - bbox = [args[0].getValue(), args[1].getValue(), args[2].getValue(), - args[3].getValue()]; + bbox = [ + args[0].getValue(), args[1].getValue(), + args[2].getValue(), args[3].getValue() + ]; projection = args[4]; property = args[5]; } else if (args[0] instanceof ol.expr.Literal && diff --git a/src/ol/parser/ogc/filterparser_v1_1_0.js b/src/ol/parser/ogc/filterparser_v1_1_0.js index a1c7e47f43..a718fa18f3 100644 --- a/src/ol/parser/ogc/filterparser_v1_1_0.js +++ b/src/ol/parser/ogc/filterparser_v1_1_0.js @@ -130,9 +130,12 @@ ol.parser.ogc.Filter_v1_1_0 = function() { goog.asserts.assert(args[2] instanceof ol.expr.Literal); goog.asserts.assert(args[3] instanceof ol.expr.Literal); goog.asserts.assert(args[4] instanceof ol.expr.Literal); - var property = args[5], bbox = [args[0].getValue(), args[1].getValue(), - args[2].getValue(), args[3].getValue()], - projection = args[4].getValue(); + var bbox = [ + args[0].getValue(), args[1].getValue(), + args[2].getValue(), args[3].getValue() + ]; + var projection = args[4].getValue(); + var property = args[5]; // PropertyName is optional in 1.1.0 if (goog.isDefAndNotNull(property)) { this.writeNode('PropertyName', property, null, node); @@ -187,8 +190,10 @@ ol.parser.ogc.Filter_v1_1_0.prototype.writeSpatial_ = function(filter, name) { goog.asserts.assert(args[1] instanceof ol.expr.Literal); goog.asserts.assert(args[2] instanceof ol.expr.Literal); goog.asserts.assert(args[3] instanceof ol.expr.Literal); - bbox = [args[0].getValue(), args[1].getValue(), args[2].getValue(), - args[3].getValue()]; + bbox = [ + args[0].getValue(), args[1].getValue(), + args[2].getValue(), args[3].getValue() + ]; projection = args[4]; property = args[5]; } else if (args[0] instanceof ol.expr.Literal && diff --git a/src/ol/parser/ogc/gmlparser_v2.js b/src/ol/parser/ogc/gmlparser_v2.js index cdc7799745..ff83c9f46a 100644 --- a/src/ol/parser/ogc/gmlparser_v2.js +++ b/src/ol/parser/ogc/gmlparser_v2.js @@ -35,8 +35,10 @@ ol.parser.ogc.GML_v2 = function(opt_options) { [node, coordinates, container]); this.readChildNodes(node, coordinates); container.projection = node.getAttribute('srsName'); - container.bounds = [coordinates[0][0][0], coordinates[0][1][0], - coordinates[0][0][1], coordinates[0][1][1]]; + container.bounds = [ + coordinates[0][0][0], coordinates[0][0][1], + coordinates[0][1][0], coordinates[0][1][1] + ]; } }); goog.object.extend(this.writers['http://www.opengis.net/gml'], { @@ -104,8 +106,11 @@ ol.parser.ogc.GML_v2 = function(opt_options) { }, 'Box': function(extent) { var node = this.createElementNS('gml:Box'); - this.writeNode('coordinates', [[extent[0], extent[1]], - [extent[2], extent[3]]], null, node); + var coordinates = [ + [extent[0], extent[1]], + [extent[2], extent[3]] + ]; + this.writeNode('coordinates', coordinates, null, node); // srsName attribute is optional for gml:Box if (goog.isDefAndNotNull(this.srsName)) { node.setAttribute('srsName', this.srsName); diff --git a/src/ol/parser/ogc/gmlparser_v3.js b/src/ol/parser/ogc/gmlparser_v3.js index aa329335f9..6b8478775d 100644 --- a/src/ol/parser/ogc/gmlparser_v3.js +++ b/src/ol/parser/ogc/gmlparser_v3.js @@ -113,7 +113,7 @@ ol.parser.ogc.GML_v3 = function(opt_options) { if (coords.length === 2) { obj.push([coords.reverse()]); } else if (coords.length === 3) { - obj.push([coords[1], coords[0], coords[2]]); + obj.push([[coords[1], coords[0], coords[2]]]); } } }, @@ -215,20 +215,22 @@ ol.parser.ogc.GML_v3 = function(opt_options) { [node, coordinates, container]); this.readChildNodes(node, coordinates); container.projection = node.getAttribute('srsName'); - container.bounds = [coordinates[0][0][0][0], coordinates[1][0][0][0], - coordinates[0][0][0][1], coordinates[1][0][0][1]]; + container.bounds = [ + coordinates[0][0], coordinates[0][1], + coordinates[1][0], coordinates[1][1] + ]; }, 'lowerCorner': function(node, envelope) { var coordinates = []; this.readers[this.defaultNamespaceURI]['pos'].apply(this, [node, coordinates]); - envelope.push(coordinates); + envelope.push(coordinates[0][0]); }, 'upperCorner': function(node, envelope) { var coordinates = []; this.readers[this.defaultNamespaceURI]['pos'].apply(this, [node, coordinates]); - envelope.push(coordinates); + envelope.push(coordinates[0][0]); } }); goog.object.extend(this.writers['http://www.opengis.net/gml'], { @@ -391,9 +393,9 @@ ol.parser.ogc.GML_v3 = function(opt_options) { // only 2d for simple features profile var pos; if (this.axisOrientation.substr(0, 2) === 'en') { - pos = (bounds[0] + ' ' + bounds[2]); + pos = (bounds[0] + ' ' + bounds[1]); } else { - pos = (bounds[2] + ' ' + bounds[0]); + pos = (bounds[1] + ' ' + bounds[0]); } var node = this.createElementNS('gml:lowerCorner'); node.appendChild(this.createTextNode(pos)); @@ -403,9 +405,9 @@ ol.parser.ogc.GML_v3 = function(opt_options) { // only 2d for simple features profile var pos; if (this.axisOrientation.substr(0, 2) === 'en') { - pos = (bounds[1] + ' ' + bounds[3]); + pos = (bounds[2] + ' ' + bounds[3]); } else { - pos = (bounds[3] + ' ' + bounds[1]); + pos = (bounds[3] + ' ' + bounds[2]); } var node = this.createElementNS('gml:upperCorner'); node.appendChild(this.createTextNode(pos)); diff --git a/src/ol/proj/chprojection.js b/src/ol/proj/chprojection.js index 3302674635..e16fa0de69 100644 --- a/src/ol/proj/chprojection.js +++ b/src/ol/proj/chprojection.js @@ -410,7 +410,7 @@ goog.inherits(ol.proj.EPSG2056, ol.proj.CH); * @type {ol.Extent} */ ol.proj.EPSG2056.EXTENT = - [2485869.5728, 2837076.5648, 1076443.1884, 1299941.7864]; + [2485869.5728, 1076443.1884, 2837076.5648, 1299941.7864]; /** @@ -447,7 +447,10 @@ goog.inherits(ol.proj.EPSG21781, ol.proj.CH); * @const * @type {ol.Extent} */ -ol.proj.EPSG21781.EXTENT = [485869.5728, 837076.5648, 76443.1884, 299941.7864]; +ol.proj.EPSG21781.EXTENT = [ + 485869.5728, 76443.1884, + 837076.5648, 299941.7864 +]; /** diff --git a/src/ol/proj/epsg3857projection.js b/src/ol/proj/epsg3857projection.js index f9b8ad3c53..e7739ffb0b 100644 --- a/src/ol/proj/epsg3857projection.js +++ b/src/ol/proj/epsg3857projection.js @@ -44,8 +44,8 @@ ol.proj.EPSG3857.HALF_SIZE = Math.PI * ol.proj.EPSG3857.RADIUS; * @type {ol.Extent} */ ol.proj.EPSG3857.EXTENT = [ - -ol.proj.EPSG3857.HALF_SIZE, ol.proj.EPSG3857.HALF_SIZE, - -ol.proj.EPSG3857.HALF_SIZE, ol.proj.EPSG3857.HALF_SIZE + -ol.proj.EPSG3857.HALF_SIZE, -ol.proj.EPSG3857.HALF_SIZE, + ol.proj.EPSG3857.HALF_SIZE, ol.proj.EPSG3857.HALF_SIZE ]; diff --git a/src/ol/proj/epsg4326projection.js b/src/ol/proj/epsg4326projection.js index 7257255143..57924a4ddc 100644 --- a/src/ol/proj/epsg4326projection.js +++ b/src/ol/proj/epsg4326projection.js @@ -30,7 +30,7 @@ goog.inherits(ol.proj.EPSG4326, ol.Projection); * @const * @type {ol.Extent} */ -ol.proj.EPSG4326.EXTENT = [-180, 180, -90, 90]; +ol.proj.EPSG4326.EXTENT = [-180, -90, 180, 90]; /** diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index eeb1b3cad7..f8aa6fd19f 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -478,8 +478,8 @@ ol.renderer.canvas.VectorLayer.prototype.renderFrame = } else if (idle) { tileExtent = tileGrid.getTileCoordExtent(tileCoord); tileExtent[0] -= tileGutter; - tileExtent[1] += tileGutter; - tileExtent[2] -= tileGutter; + tileExtent[2] += tileGutter; + tileExtent[1] -= tileGutter; tileExtent[3] += tileGutter; tileHasFeatures = false; for (i = 0; i < numTypes; ++i) { diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index d63d5054d2..bbef2d4f72 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -170,11 +170,11 @@ ol.renderer.webgl.ImageLayer.prototype.updateProjectionMatrix_ = goog.vec.Mat4.rotateZ(projectionMatrix, -viewRotation); goog.vec.Mat4.translate(projectionMatrix, imageExtent[0] - viewCenter[0], - imageExtent[2] - viewCenter[1], + imageExtent[1] - viewCenter[1], 0); goog.vec.Mat4.scale(projectionMatrix, - (imageExtent[1] - imageExtent[0]) / 2, - (imageExtent[3] - imageExtent[2]) / 2, + (imageExtent[2] - imageExtent[0]) / 2, + (imageExtent[3] - imageExtent[1]) / 2, 1); goog.vec.Mat4.translate(projectionMatrix, 1, 1, 0); diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index 915b75e0dd..e60139653b 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -161,8 +161,8 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame = var minX = origin[0] + tileRange.minX * tileSize[0] * tileResolution; var minY = origin[1] + tileRange.minY * tileSize[1] * tileResolution; framebufferExtent = [ - minX, minX + framebufferExtentDimension, - minY, minY + framebufferExtentDimension + minX, minY, + minX + framebufferExtentDimension, minY + framebufferExtentDimension ]; this.bindFramebuffer(frameState, framebufferDimension); @@ -246,11 +246,13 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame = for (tileKey in tilesToDraw) { tile = tilesToDraw[tileKey]; tileExtent = tileGrid.getTileCoordExtent(tile.tileCoord, tmpExtent); - sx = 2 * (tileExtent[1] - tileExtent[0]) / framebufferExtentDimension; - sy = 2 * (tileExtent[3] - tileExtent[2]) / framebufferExtentDimension; + sx = 2 * (tileExtent[2] - tileExtent[0]) / + framebufferExtentDimension; + sy = 2 * (tileExtent[3] - tileExtent[1]) / + framebufferExtentDimension; tx = 2 * (tileExtent[0] - framebufferExtent[0]) / framebufferExtentDimension - 1; - ty = 2 * (tileExtent[2] - framebufferExtent[2]) / + ty = 2 * (tileExtent[1] - framebufferExtent[1]) / framebufferExtentDimension - 1; goog.vec.Vec4.setFromValues(u_tileOffset, sx, sy, tx, ty); gl.uniform4fv(this.locations_.u_tileOffset, u_tileOffset); @@ -295,16 +297,16 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame = goog.vec.Mat4.makeIdentity(texCoordMatrix); goog.vec.Mat4.translate(texCoordMatrix, (center[0] - framebufferExtent[0]) / - (framebufferExtent[1] - framebufferExtent[0]), - (center[1] - framebufferExtent[2]) / - (framebufferExtent[3] - framebufferExtent[2]), + (framebufferExtent[2] - framebufferExtent[0]), + (center[1] - framebufferExtent[1]) / + (framebufferExtent[3] - framebufferExtent[1]), 0); goog.vec.Mat4.rotateZ(texCoordMatrix, view2DState.rotation); goog.vec.Mat4.scale(texCoordMatrix, frameState.size[0] * view2DState.resolution / - (framebufferExtent[1] - framebufferExtent[0]), + (framebufferExtent[2] - framebufferExtent[0]), frameState.size[1] * view2DState.resolution / - (framebufferExtent[3] - framebufferExtent[2]), + (framebufferExtent[3] - framebufferExtent[1]), 1); goog.vec.Mat4.translate(texCoordMatrix, -0.5, diff --git a/src/ol/source/imagestaticsource.js b/src/ol/source/imagestaticsource.js index 9e0723ea15..b6e3742d9a 100644 --- a/src/ol/source/imagestaticsource.js +++ b/src/ol/source/imagestaticsource.js @@ -20,7 +20,7 @@ ol.source.ImageStatic = function(options) { var imageExtent = options.imageExtent; var imageSize = options.imageSize; - var imageResolution = (imageExtent[3] - imageExtent[2]) / imageSize[1]; + var imageResolution = (imageExtent[3] - imageExtent[1]) / imageSize[1]; var projection = ol.proj.get(options.projection); goog.base(this, { diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index d69c5b7be9..2445312dc0 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -89,8 +89,8 @@ ol.source.ImageWMS.prototype.getImage = extent = extent.slice(); ol.extent.scaleFromCenter(extent, this.ratio_); - var width = (extent[1] - extent[0]) / resolution; - var height = (extent[3] - extent[2]) / resolution; + var width = (extent[2] - extent[0]) / resolution; + var height = (extent[3] - extent[1]) / resolution; var size = [width, height]; this.image_ = this.createImage(extent, resolution, size, projection); diff --git a/src/ol/source/tilejsonsource.js b/src/ol/source/tilejsonsource.js index 337791f970..eb1f91e664 100644 --- a/src/ol/source/tilejsonsource.js +++ b/src/ol/source/tilejsonsource.js @@ -69,15 +69,15 @@ goog.inherits(ol.source.TileJSON, ol.source.TileImage); * @protected */ ol.source.TileJSON.prototype.handleTileJSONResponse = function() { - var tileJSON = ol.tilejson.grids_.pop(); var epsg4326Projection = ol.proj.get('EPSG:4326'); var extent; if (goog.isDef(tileJSON.bounds)) { - var bounds = tileJSON.bounds; - var epsg4326Extent = [bounds[0], bounds[2], bounds[1], bounds[3]]; + var epsg4326Extent = [ + tileJSON.bounds.slice(0, 2), tileJSON.bounds.slice(2) + ]; var transform = ol.proj.getTransformFromProjections( epsg4326Projection, this.getProjection()); extent = ol.extent.transform(epsg4326Extent, transform); diff --git a/src/ol/source/tilewmssource.js b/src/ol/source/tilewmssource.js index 85df962b53..7faa7244b7 100644 --- a/src/ol/source/tilewmssource.js +++ b/src/ol/source/tilewmssource.js @@ -76,9 +76,10 @@ ol.source.TileWMS = function(options) { if (!goog.isNull(extent) && projection.isGlobal() && extent[0] === projectionExtent[0] && - extent[1] === projectionExtent[1]) { + extent[2] === projectionExtent[2]) { var numCols = Math.ceil( - (extent[1] - extent[0]) / (tileExtent[1] - tileExtent[0])); + (extent[2] - extent[0]) / + (tileExtent[2] - tileExtent[0])); x = goog.math.modulo(x, numCols); tileExtent = tileGrid.getTileCoordExtent( new ol.TileCoord(tileCoord.z, x, tileCoord.y)); diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index 07fb1b0cc2..1171f5babe 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -54,8 +54,8 @@ ol.source.wms.getUrl = var axisOrientation = projection.getAxisOrientation(); var bboxValues = (wms13 && axisOrientation.substr(0, 2) == 'ne') ? - [extent[2], extent[0], extent[3], extent[1]] : - [extent[0], extent[2], extent[1], extent[3]]; + [extent[1], extent[0], extent[3], extent[2]] : + [extent[0], extent[1], extent[2], extent[3]]; baseParams['BBOX'] = bboxValues.join(','); return goog.uri.utils.appendParamsFromMap(baseUrl, baseParams); diff --git a/src/ol/source/wmtssource.js b/src/ol/source/wmtssource.js index 0a44eede2c..e4fecfcd05 100644 --- a/src/ol/source/wmtssource.js +++ b/src/ol/source/wmtssource.js @@ -155,9 +155,10 @@ ol.source.WMTS = function(options) { if (!goog.isNull(extent) && projection.isGlobal() && extent[0] === projectionExtent[0] && - extent[1] === projectionExtent[1]) { + extent[2] === projectionExtent[2]) { var numCols = Math.ceil( - (extent[1] - extent[0]) / (tileExtent[1] - tileExtent[0])); + (extent[2] - extent[0]) / + (tileExtent[2] - tileExtent[0])); x = goog.math.modulo(x, numCols); tmpTileCoord.z = tileCoord.z; tmpTileCoord.x = x; diff --git a/src/ol/structs/rtree.js b/src/ol/structs/rtree.js index 2914375988..ad3db13ffb 100644 --- a/src/ol/structs/rtree.js +++ b/src/ol/structs/rtree.js @@ -85,8 +85,8 @@ ol.structs.RTree.recalculateExtent_ = function(node) { } else { var firstNodeExtent = node.nodes[0].extent; extent[0] = firstNodeExtent[0]; - extent[1] = firstNodeExtent[1]; extent[2] = firstNodeExtent[2]; + extent[1] = firstNodeExtent[1]; extent[3] = firstNodeExtent[3]; var i; for (i = 1; i < n; ++i) { @@ -151,19 +151,19 @@ ol.structs.RTree.prototype.chooseLeafSubtree_ = function(rect, root) { } // Area of new enlarged rectangle var oldLRatio = ol.structs.RTree.squarifiedRatio_( - lTree.extent[1] - lTree.extent[0], - lTree.extent[3] - lTree.extent[2], + lTree.extent[2] - lTree.extent[0], + lTree.extent[3] - lTree.extent[1], lTree.nodes.length + 1); // Enlarge rectangle to fit new rectangle - var nw = (lTree.extent[1] > rect.extent[1] ? - lTree.extent[1] : rect.extent[1]) - + var nw = (lTree.extent[2] > rect.extent[2] ? + lTree.extent[2] : rect.extent[2]) - (lTree.extent[0] < rect.extent[0] ? lTree.extent[0] : rect.extent[0]); var nh = (lTree.extent[3] > rect.extent[3] ? lTree.extent[3] : rect.extent[3]) - - (lTree.extent[2] < rect.extent[2] ? - lTree.extent[2] : rect.extent[2]); + (lTree.extent[1] < rect.extent[1] ? + lTree.extent[1] : rect.extent[1]); // Area of new enlarged rectangle var lRatio = ol.structs.RTree.squarifiedRatio_( @@ -210,7 +210,7 @@ ol.structs.RTree.prototype.insertSubtree_ = function(node, root) { // Initial insertion is special because we resize the Tree and we don't // care about any overflow (seriously, how can the first object overflow?) if (root.nodes.length === 0) { - root.extent = node.extent.concat(); + root.extent = ol.extent.clone(node.extent); root.nodes.push(node); return; } @@ -253,7 +253,7 @@ ol.structs.RTree.prototype.insertSubtree_ = function(node, root) { } if (bc.nodes.length <= this.maxWidth_) { // Start Resizeing Up the Tree - workingObject = {extent: bc.extent.concat()}; + workingObject = {extent: ol.extent.clone(bc.extent)}; } else { // Otherwise Split this Node // linearSplit_() returns an array containing two new nodes // formed from the split of the previous node's overflow @@ -269,7 +269,7 @@ ol.structs.RTree.prototype.insertSubtree_ = function(node, root) { } else { // Otherwise Do Resize //Just keep applying the new bounding rectangle to the parents.. ol.extent.extend(bc.extent, workingObject.extent); - workingObject = ({extent: bc.extent.concat()}); + workingObject = ({extent: ol.extent.clone(bc.extent)}); } } while (treeStack.length > 0); }; @@ -310,19 +310,19 @@ ol.structs.RTree.prototype.pickLinear_ = function(nodes) { var l = nodes[i]; if (l.extent[0] > nodes[highestLowX].extent[0]) { highestLowX = i; - } else if (l.extent[1] < nodes[lowestHighX].extent[2]) { + } else if (l.extent[2] < nodes[lowestHighX].extent[1]) { lowestHighX = i; } - if (l.extent[2] > nodes[highestLowY].extent[2]) { + if (l.extent[1] > nodes[highestLowY].extent[1]) { highestLowY = i; } else if (l.extent[3] < nodes[lowestHighY].extent[3]) { lowestHighY = i; } } - var dx = Math.abs(nodes[lowestHighX].extent[1] - + var dx = Math.abs(nodes[lowestHighX].extent[2] - nodes[highestLowX].extent[0]); var dy = Math.abs(nodes[lowestHighY].extent[3] - - nodes[highestLowY].extent[2]); + nodes[highestLowY].extent[1]); if (dx > dy) { if (lowestHighX > highestLowX) { t1 = nodes.splice(lowestHighX, 1)[0]; @@ -342,9 +342,9 @@ ol.structs.RTree.prototype.pickLinear_ = function(nodes) { } return [ /** @type {ol.structs.RTreeNode} */ - ({extent: t1.extent.concat(), nodes: [t1]}), + ({extent: ol.extent.clone(t1.extent), nodes: [t1]}), /** @type {ol.structs.RTreeNode} */ - ({extent: t2.extent.concat(), nodes: [t2]}) + ({extent: ol.extent.clone(t2.extent), nodes: [t2]}) ]; }; @@ -359,10 +359,10 @@ ol.structs.RTree.prototype.pickLinear_ = function(nodes) { */ ol.structs.RTree.prototype.pickNext_ = function(nodes, a, b) { // Area of new enlarged rectangle - var areaA = ol.structs.RTree.squarifiedRatio_(a.extent[1] - a.extent[0], - a.extent[3] - a.extent[2], a.nodes.length + 1); - var areaB = ol.structs.RTree.squarifiedRatio_(b.extent[1] - b.extent[0], - b.extent[3] - b.extent[2], b.nodes.length + 1); + var areaA = ol.structs.RTree.squarifiedRatio_(a.extent[2] - a.extent[0], + a.extent[3] - a.extent[1], a.nodes.length + 1); + var areaB = ol.structs.RTree.squarifiedRatio_(b.extent[2] - b.extent[0], + b.extent[3] - b.extent[1], b.nodes.length + 1); var highAreaDelta; var highAreaNode; var lowestGrowthGroup; @@ -372,8 +372,8 @@ ol.structs.RTree.prototype.pickNext_ = function(nodes, a, b) { var newAreaA = [ a.extent[0] < l.extent[0] ? a.extent[0] : l.extent[0], - a.extent[1] > l.extent[1] ? a.extent[1] : l.extent[1], - a.extent[2] < l.extent[2] ? a.extent[2] : l.extent[2], + a.extent[2] > l.extent[2] ? a.extent[2] : l.extent[2], + a.extent[1] < l.extent[1] ? a.extent[1] : l.extent[1], a.extent[3] > l.extent[3] ? a.extent[3] : l.extent[3] ]; var changeNewAreaA = Math.abs(ol.structs.RTree.squarifiedRatio_( @@ -382,8 +382,8 @@ ol.structs.RTree.prototype.pickNext_ = function(nodes, a, b) { var newAreaB = [ b.extent[0] < l.extent[0] ? b.extent[0] : l.extent[0], - b.extent[1] > l.extent[1] ? b.extent[1] : l.extent[1], - b.extent[2] < l.extent[2] ? b.extent[2] : l.extent[2], + b.extent[2] > l.extent[2] ? b.extent[2] : l.extent[2], + b.extent[1] < l.extent[1] ? b.extent[1] : l.extent[1], b.extent[3] > l.extent[3] ? b.extent[3] : l.extent[3] ]; var changeNewAreaB = Math.abs(ol.structs.RTree.squarifiedRatio_( @@ -466,7 +466,7 @@ ol.structs.RTree.prototype.removeSubtree_ = function(rect, obj, root) { /** @type {ol.structs.RTreeNode} */ var workingObject = /** @type {ol.structs.RTreeNode} */ - ({extent: rect.extent.concat(), target: obj}); + ({extent: ol.extent.clone(rect.extent), target: obj}); countStack.push(root.nodes.length); hitStack.push(root); diff --git a/src/ol/tilegrid/tilegrid.js b/src/ol/tilegrid/tilegrid.js index ced5880a2c..fe90b19b5b 100644 --- a/src/ol/tilegrid/tilegrid.js +++ b/src/ol/tilegrid/tilegrid.js @@ -232,11 +232,11 @@ ol.tilegrid.TileGrid.prototype.getTileRangeForExtentAndResolution = function(extent, resolution, opt_tileRange) { var tileCoord = ol.tilegrid.TileGrid.tmpTileCoord_; this.getTileCoordForXYAndResolution_( - extent[0], extent[2], resolution, false, tileCoord); + extent[0], extent[1], resolution, false, tileCoord); var minX = tileCoord.x; var minY = tileCoord.y; this.getTileCoordForXYAndResolution_( - extent[1], extent[3], resolution, true, tileCoord); + extent[2], extent[3], resolution, true, tileCoord); return ol.TileRange.createOrUpdate( minX, tileCoord.x, minY, tileCoord.y, opt_tileRange); }; @@ -414,8 +414,8 @@ ol.tilegrid.createForProjection = var size = goog.isNull(projectionExtent) ? 360 * ol.METERS_PER_UNIT[ol.ProjectionUnits.DEGREES] / projection.getMetersPerUnit() : - Math.max(projectionExtent[1] - projectionExtent[0], - projectionExtent[3] - projectionExtent[2]); + Math.max(projectionExtent[2] - projectionExtent[0], + projectionExtent[3] - projectionExtent[1]); var maxZoom = goog.isDef(opt_maxZoom) ? opt_maxZoom : ol.DEFAULT_MAX_ZOOM; var tileSize = goog.isDef(opt_tileSize) ? diff --git a/src/ol/view2d.js b/src/ol/view2d.js index 57f4a976b4..dd573f1306 100644 --- a/src/ol/view2d.js +++ b/src/ol/view2d.js @@ -226,7 +226,7 @@ ol.View2D.prototype.calculateExtent = function(size) { var maxX = center[0] + resolution * size[0] / 2; var minY = center[1] - resolution * size[1] / 2; var maxY = center[1] + resolution * size[1] / 2; - return [minX, maxX, minY, maxY]; + return [minX, minY, maxX, maxY]; }; @@ -262,8 +262,8 @@ goog.exportProperty( * @return {number} Resolution. */ ol.View2D.prototype.getResolutionForExtent = function(extent, size) { - var xResolution = (extent[1] - extent[0]) / size[0]; - var yResolution = (extent[3] - extent[2]) / size[1]; + var xResolution = (extent[2] - extent[0]) / size[0]; + var yResolution = (extent[3] - extent[1]) / size[1]; return Math.max(xResolution, yResolution); }; @@ -498,8 +498,8 @@ ol.View2D.createResolutionConstraint_ = function(options) { // use an extent that can fit the whole world if need be 360 * ol.METERS_PER_UNIT[ol.ProjectionUnits.DEGREES] / ol.METERS_PER_UNIT[projection.getUnits()] : - Math.max(projectionExtent[1] - projectionExtent[0], - projectionExtent[3] - projectionExtent[2]); + Math.max(projectionExtent[2] - projectionExtent[0], + projectionExtent[3] - projectionExtent[1]); maxResolution = size / ol.DEFAULT_TILE_SIZE; } var maxZoom = options.maxZoom; diff --git a/test/spec/ol/expr/expression.test.js b/test/spec/ol/expr/expression.test.js index 22927fa0ef..b6df959592 100644 --- a/test/spec/ol/expr/expression.test.js +++ b/test/spec/ol/expr/expression.test.js @@ -688,10 +688,10 @@ describe('ol.expr.lib', function() { ]]) }); - var north = parse('extent(-100, 100, 40, 60)'); - var south = parse('extent(-100, 100, -60, -40)'); - var east = parse('extent(80, 100, -50, 50)'); - var west = parse('extent(-100, -80, -50, 50)'); + var north = parse('extent(-100, 40, 100, 60)'); + var south = parse('extent(-100, -60, 100, -40)'); + var east = parse('extent(80, -50, 100, 50)'); + var west = parse('extent(-100, -50, -80, 50)'); it('evaluates to true for features within given extent', function() { diff --git a/test/spec/ol/extent.test.js b/test/spec/ol/extent.test.js index f8464df27b..c4a9a1dbeb 100644 --- a/test/spec/ol/extent.test.js +++ b/test/spec/ol/extent.test.js @@ -3,11 +3,24 @@ goog.provide('ol.test.extent'); describe('ol.extent', function() { + describe('clone', function() { + + it('creates a copy of an extent', function() { + var extent = ol.extent.createOrUpdate(1, 2, 3, 4); + var clone = ol.extent.clone(extent); + expect(ol.extent.equals(extent, clone)).to.be(true); + + ol.extent.extendCoordinate(extent, [10, 20]); + expect(ol.extent.equals(extent, clone)).to.be(false); + }); + + }); + describe('containsCoordinate', function() { describe('positive', function() { it('returns true', function() { - var extent = [1, 3, 2, 4]; + var extent = [1, 2, 3, 4]; expect(ol.extent.containsCoordinate(extent, [1, 2])).to.be.ok(); expect(ol.extent.containsCoordinate(extent, [1, 3])).to.be.ok(); expect(ol.extent.containsCoordinate(extent, [1, 4])).to.be.ok(); @@ -22,7 +35,7 @@ describe('ol.extent', function() { describe('negative', function() { it('returns false', function() { - var extent = [1, 3, 2, 4]; + var extent = [1, 2, 3, 4]; expect(ol.extent.containsCoordinate(extent, [0, 1])).to.not.be(); expect(ol.extent.containsCoordinate(extent, [0, 2])).to.not.be(); expect(ol.extent.containsCoordinate(extent, [0, 3])).to.not.be(); @@ -45,7 +58,7 @@ describe('ol.extent', function() { describe('getCenter', function() { it('returns the expected center', function() { - var extent = [1, 3, 2, 4]; + var extent = [1, 2, 3, 4]; var center = ol.extent.getCenter(extent); expect(center[0]).to.eql(2); expect(center[1]).to.eql(3); @@ -58,8 +71,8 @@ describe('ol.extent', function() { var extent = ol.extent.getForView2DAndSize( [0, 0], 1, 0, [1, 1]); expect(extent[0]).to.be(-0.5); - expect(extent[1]).to.be(0.5); - expect(extent[2]).to.be(-0.5); + expect(extent[2]).to.be(0.5); + expect(extent[1]).to.be(-0.5); expect(extent[3]).to.be(0.5); }); @@ -67,8 +80,8 @@ describe('ol.extent', function() { var extent = ol.extent.getForView2DAndSize( [5, 10], 1, 0, [1, 1]); expect(extent[0]).to.be(4.5); - expect(extent[1]).to.be(5.5); - expect(extent[2]).to.be(9.5); + expect(extent[2]).to.be(5.5); + expect(extent[1]).to.be(9.5); expect(extent[3]).to.be(10.5); }); @@ -76,8 +89,8 @@ describe('ol.extent', function() { var extent = ol.extent.getForView2DAndSize( [0, 0], 1, Math.PI / 4, [1, 1]); expect(extent[0]).to.roughlyEqual(-Math.sqrt(0.5), 1e-9); - expect(extent[1]).to.roughlyEqual(Math.sqrt(0.5), 1e-9); - expect(extent[2]).to.roughlyEqual(-Math.sqrt(0.5), 1e-9); + expect(extent[2]).to.roughlyEqual(Math.sqrt(0.5), 1e-9); + expect(extent[1]).to.roughlyEqual(-Math.sqrt(0.5), 1e-9); expect(extent[3]).to.roughlyEqual(Math.sqrt(0.5), 1e-9); }); @@ -85,8 +98,8 @@ describe('ol.extent', function() { var extent = ol.extent.getForView2DAndSize( [0, 0], 2, 0, [1, 1]); expect(extent[0]).to.be(-1); - expect(extent[1]).to.be(1); - expect(extent[2]).to.be(-1); + expect(extent[2]).to.be(1); + expect(extent[1]).to.be(-1); expect(extent[3]).to.be(1); }); @@ -94,8 +107,8 @@ describe('ol.extent', function() { var extent = ol.extent.getForView2DAndSize( [0, 0], 1, 0, [10, 5]); expect(extent[0]).to.be(-5); - expect(extent[1]).to.be(5); - expect(extent[2]).to.be(-2.5); + expect(extent[2]).to.be(5); + expect(extent[1]).to.be(-2.5); expect(extent[3]).to.be(2.5); }); @@ -103,7 +116,7 @@ describe('ol.extent', function() { describe('getSize', function() { it('returns the expected size', function() { - var extent = [0, 2, 1, 4]; + var extent = [0, 1, 2, 4]; var size = ol.extent.getSize(extent); expect(size).to.eql([2, 3]); }); @@ -111,46 +124,42 @@ describe('ol.extent', function() { describe('intersect', function() { - var extent1; - - beforeEach(function() { - extent1 = [50, 100, 50, 100]; - }); - it('returns the expected value', function() { - expect(ol.extent.intersects(extent1, extent1)).to.be(true); - expect(ol.extent.intersects(extent1, [20, 80, 20, 80])).to.be(true); - expect(ol.extent.intersects(extent1, [20, 80, 50, 100])).to.be(true); - expect(ol.extent.intersects(extent1, [20, 80, 80, 120])).to.be(true); - expect(ol.extent.intersects(extent1, [50, 100, 20, 80])).to.be(true); - expect(ol.extent.intersects(extent1, [50, 100, 80, 120])).to.be(true); - expect(ol.extent.intersects(extent1, [80, 120, 20, 80])).to.be(true); - expect(ol.extent.intersects(extent1, [80, 120, 50, 100])).to.be(true); - expect(ol.extent.intersects(extent1, [80, 120, 80, 120])).to.be(true); - expect(ol.extent.intersects(extent1, [20, 120, 20, 120])).to.be(true); - expect(ol.extent.intersects(extent1, [70, 80, 70, 80])).to.be(true); - expect(ol.extent.intersects(extent1, [10, 30, 10, 30])).to.be(false); - expect(ol.extent.intersects(extent1, [30, 70, 10, 30])).to.be(false); - expect(ol.extent.intersects(extent1, [50, 100, 10, 30])).to.be(false); - expect(ol.extent.intersects(extent1, [80, 120, 10, 30])).to.be(false); - expect(ol.extent.intersects(extent1, [120, 140, 10, 30])).to.be(false); - expect(ol.extent.intersects(extent1, [10, 30, 30, 70])).to.be(false); - expect(ol.extent.intersects(extent1, [120, 140, 30, 70])).to.be(false); - expect(ol.extent.intersects(extent1, [10, 30, 50, 100])).to.be(false); - expect(ol.extent.intersects(extent1, [120, 140, 50, 100])).to.be(false); - expect(ol.extent.intersects(extent1, [10, 30, 80, 120])).to.be(false); - expect(ol.extent.intersects(extent1, [120, 140, 80, 120])).to.be(false); - expect(ol.extent.intersects(extent1, [10, 30, 120, 140])).to.be(false); - expect(ol.extent.intersects(extent1, [30, 70, 120, 140])).to.be(false); - expect(ol.extent.intersects(extent1, [50, 100, 120, 140])).to.be(false); - expect(ol.extent.intersects(extent1, [80, 120, 120, 140])).to.be(false); - expect(ol.extent.intersects(extent1, [120, 140, 120, 140])).to.be(false); + var intersects = ol.extent.intersects; + var extent = [50, 50, 100, 100]; + expect(intersects(extent, extent)).to.be(true); + expect(intersects(extent, [20, 20, 80, 80])).to.be(true); + expect(intersects(extent, [20, 50, 80, 100])).to.be(true); + expect(intersects(extent, [20, 80, 80, 120])).to.be(true); + expect(intersects(extent, [50, 20, 100, 80])).to.be(true); + expect(intersects(extent, [50, 80, 100, 120])).to.be(true); + expect(intersects(extent, [80, 20, 120, 80])).to.be(true); + expect(intersects(extent, [80, 50, 120, 100])).to.be(true); + expect(intersects(extent, [80, 80, 120, 120])).to.be(true); + expect(intersects(extent, [20, 20, 120, 120])).to.be(true); + expect(intersects(extent, [70, 70, 80, 80])).to.be(true); + expect(intersects(extent, [10, 10, 30, 30])).to.be(false); + expect(intersects(extent, [30, 10, 70, 30])).to.be(false); + expect(intersects(extent, [50, 10, 100, 30])).to.be(false); + expect(intersects(extent, [80, 10, 120, 30])).to.be(false); + expect(intersects(extent, [120, 10, 140, 30])).to.be(false); + expect(intersects(extent, [10, 30, 30, 70])).to.be(false); + expect(intersects(extent, [120, 30, 140, 70])).to.be(false); + expect(intersects(extent, [10, 50, 30, 100])).to.be(false); + expect(intersects(extent, [120, 50, 140, 100])).to.be(false); + expect(intersects(extent, [10, 80, 30, 120])).to.be(false); + expect(intersects(extent, [120, 80, 140, 120])).to.be(false); + expect(intersects(extent, [10, 120, 30, 140])).to.be(false); + expect(intersects(extent, [30, 120, 70, 140])).to.be(false); + expect(intersects(extent, [50, 120, 100, 140])).to.be(false); + expect(intersects(extent, [80, 120, 120, 140])).to.be(false); + expect(intersects(extent, [120, 120, 140, 140])).to.be(false); }); }); describe('normalize', function() { it('returns the expected coordinate', function() { - var extent = [0, 2, 1, 3]; + var extent = [0, 1, 2, 3]; var coordinate; coordinate = ol.extent.normalize(extent, [1, 2]); @@ -177,18 +186,18 @@ describe('ol.extent', function() { describe('scaleFromCenter', function() { it('scales the extent from its center', function() { - var extent = [1, 3, 1, 3]; + var extent = [1, 1, 3, 3]; ol.extent.scaleFromCenter(extent, 2); expect(extent[0]).to.eql(0); - expect(extent[1]).to.eql(4); - expect(extent[2]).to.eql(0); + expect(extent[2]).to.eql(4); + expect(extent[1]).to.eql(0); expect(extent[3]).to.eql(4); }); }); describe('toString', function() { it('returns the expected string', function() { - var extent = [0, 2, 1, 3]; + var extent = [0, 1, 2, 3]; expect(ol.extent.toString(extent)).to.eql('(0, 2, 1, 3)'); }); }); @@ -197,14 +206,15 @@ describe('ol.extent', function() { it('does transform', function() { var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); - var sourceExtent = [-15, 45, -30, 60]; + var sourceExtent = [-15, -30, 45, 60]; var destinationExtent = ol.extent.transform(sourceExtent, transformFn); expect(destinationExtent).not.to.be(undefined); expect(destinationExtent).not.to.be(null); // FIXME check values with third-party tool - expect(destinationExtent[0]).to.roughlyEqual(-1669792.3618991037, 1e-9); - expect(destinationExtent[1]).to.roughlyEqual(5009377.085697311, 1e-9); - expect(destinationExtent[2]).to.roughlyEqual(-3503549.843504376, 1e-8); + expect(destinationExtent[0]) + .to.roughlyEqual(-1669792.3618991037, 1e-9); + expect(destinationExtent[2]).to.roughlyEqual(5009377.085697311, 1e-9); + expect(destinationExtent[1]).to.roughlyEqual(-3503549.843504376, 1e-8); expect(destinationExtent[3]).to.roughlyEqual(8399737.889818361, 1e-9); }); @@ -222,13 +232,13 @@ describe('ol.extent', function() { } return output; }; - var sourceExtent = [-15, 45, -30, 60]; + var sourceExtent = [-15, -30, 45, 60]; var destinationExtent = ol.extent.transform(sourceExtent, transformFn); expect(destinationExtent).not.to.be(undefined); expect(destinationExtent).not.to.be(null); expect(destinationExtent[0]).to.be(-45); - expect(destinationExtent[1]).to.be(15); - expect(destinationExtent[2]).to.be(-60); + expect(destinationExtent[2]).to.be(15); + expect(destinationExtent[1]).to.be(-60); expect(destinationExtent[3]).to.be(30); }); diff --git a/test/spec/ol/geom/geometrycollection.test.js b/test/spec/ol/geom/geometrycollection.test.js index 622cd48943..014fd39b8a 100644 --- a/test/spec/ol/geom/geometrycollection.test.js +++ b/test/spec/ol/geom/geometrycollection.test.js @@ -80,8 +80,8 @@ describe('ol.geom.GeometryCollection', function() { var multi = new ol.geom.GeometryCollection([point, line]); var bounds = multi.getBounds(); expect(bounds[0]).to.be(1); - expect(bounds[1]).to.be(30); - expect(bounds[2]).to.be(2); + expect(bounds[2]).to.be(30); + expect(bounds[1]).to.be(2); expect(bounds[3]).to.be(40); }); diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index 3367073f6f..39f6ff3693 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -40,8 +40,8 @@ describe('ol.geom.LineString', function() { var line = new ol.geom.LineString([[10, 20], [20, 30], [30, 40]]); var bounds = line.getBounds(); expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(30); - expect(bounds[2]).to.be(20); + expect(bounds[2]).to.be(30); + expect(bounds[1]).to.be(20); expect(bounds[3]).to.be(40); }); diff --git a/test/spec/ol/geom/multilinestring.test.js b/test/spec/ol/geom/multilinestring.test.js index e5fbe9ee62..571b038175 100644 --- a/test/spec/ol/geom/multilinestring.test.js +++ b/test/spec/ol/geom/multilinestring.test.js @@ -62,8 +62,8 @@ describe('ol.geom.MultiLineString', function() { [[20, 30], [40, 50]]]); var bounds = multi.getBounds(); expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(40); - expect(bounds[2]).to.be(20); + expect(bounds[2]).to.be(40); + expect(bounds[1]).to.be(20); expect(bounds[3]).to.be(50); }); diff --git a/test/spec/ol/geom/multipoint.test.js b/test/spec/ol/geom/multipoint.test.js index dae7d1fb21..a79a75b59a 100644 --- a/test/spec/ol/geom/multipoint.test.js +++ b/test/spec/ol/geom/multipoint.test.js @@ -52,8 +52,8 @@ describe('ol.geom.MultiPoint', function() { var multi = new ol.geom.MultiPoint([[10, 20], [30, 40]]); var bounds = multi.getBounds(); expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(30); - expect(bounds[2]).to.be(20); + expect(bounds[2]).to.be(30); + expect(bounds[1]).to.be(20); expect(bounds[3]).to.be(40); }); diff --git a/test/spec/ol/geom/multipolygon.test.js b/test/spec/ol/geom/multipolygon.test.js index 5c3b76ccf5..2cd118e0ed 100644 --- a/test/spec/ol/geom/multipolygon.test.js +++ b/test/spec/ol/geom/multipolygon.test.js @@ -65,8 +65,8 @@ describe('ol.geom.MultiPolygon', function() { [outer2]]); var bounds = multi.getBounds(); expect(bounds[0]).to.be(0); - expect(bounds[1]).to.be(20); - expect(bounds[2]).to.be(0); + expect(bounds[2]).to.be(20); + expect(bounds[1]).to.be(0); expect(bounds[3]).to.be(50); }); diff --git a/test/spec/ol/geom/point.test.js b/test/spec/ol/geom/point.test.js index 4320c25499..ff3e7db02e 100644 --- a/test/spec/ol/geom/point.test.js +++ b/test/spec/ol/geom/point.test.js @@ -49,8 +49,8 @@ describe('ol.geom.Point', function() { var point = new ol.geom.Point([10, 20]); var bounds = point.getBounds(); expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(10); - expect(bounds[2]).to.be(20); + expect(bounds[2]).to.be(10); + expect(bounds[1]).to.be(20); expect(bounds[3]).to.be(20); }); diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index 80fbefebec..4cac05c9e7 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -81,8 +81,8 @@ describe('ol.geom.Polygon', function() { var poly = new ol.geom.Polygon([outer, inner1, inner2]); var bounds = poly.getBounds(); expect(bounds[0]).to.be(0); - expect(bounds[1]).to.be(10); - expect(bounds[2]).to.be(0); + expect(bounds[2]).to.be(10); + expect(bounds[1]).to.be(0); expect(bounds[3]).to.be(10); }); diff --git a/test/spec/ol/geom2/geom2.test.js b/test/spec/ol/geom2/geom2.test.js index d894bc65af..83e87e7ce8 100644 --- a/test/spec/ol/geom2/geom2.test.js +++ b/test/spec/ol/geom2/geom2.test.js @@ -13,22 +13,7 @@ describe('ol.geom2', function() { it('returns the expected extent', function() { var extent = ol.geom2.getExtent(buf, dim); - expect(extent).to.eql([0, 10, 1, 11]); - }); - - it('returns the expect extent in three dimensions', function() { - var extent = ol.geom2.getExtent(buf, 3); - expect(extent).to.eql([0, 9, 1, 10, 2, 11]); - }); - - it('returns the expect extent in four dimensions', function() { - var extent = ol.geom2.getExtent(buf, 4); - expect(extent).to.eql([0, 8, 1, 9, 2, 10, 3, 11]); - }); - - it('returns the expect extent in six dimensions', function() { - var extent = ol.geom2.getExtent(buf, 6); - expect(extent).to.eql([0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11]); + expect(extent).to.eql([0, 1, 10, 11]); }); }); diff --git a/test/spec/ol/geom2/linecollection.test.js b/test/spec/ol/geom2/linecollection.test.js index ab1c6d9354..e1a86b7f9f 100644 --- a/test/spec/ol/geom2/linecollection.test.js +++ b/test/spec/ol/geom2/linecollection.test.js @@ -189,7 +189,7 @@ describe('ol.geom2.LineStringCollection', function() { describe('getExtent', function() { it('returns the expected extent', function() { - expect(lsc.getExtent()).to.eql([0, 2, 1, 3]); + expect(lsc.getExtent()).to.eql([0, 1, 2, 3]); }); }); @@ -268,7 +268,7 @@ describe('ol.geom2.LineStringCollection', function() { describe('getExtent', function() { it('returns the expected value', function() { - expect(lsc.getExtent()).to.eql([0, 8, 1, 9]); + expect(lsc.getExtent()).to.eql([0, 1, 8, 9]); }); }); diff --git a/test/spec/ol/geom2/pointcollection.test.js b/test/spec/ol/geom2/pointcollection.test.js index 52d7d33bd5..246dfec466 100644 --- a/test/spec/ol/geom2/pointcollection.test.js +++ b/test/spec/ol/geom2/pointcollection.test.js @@ -198,7 +198,7 @@ describe('ol.geom2.PointCollection', function() { it('returns the expected value', function() { var extent = pc.getExtent(); - expect(extent).to.eql([0, 2, 1, 3]); + expect(extent).to.eql([0, 1, 2, 3]); }); }); diff --git a/test/spec/ol/layer/vectorlayer.test.js b/test/spec/ol/layer/vectorlayer.test.js index 2cf1f54614..099452a8ce 100644 --- a/test/spec/ol/layer/vectorlayer.test.js +++ b/test/spec/ol/layer/vectorlayer.test.js @@ -52,7 +52,7 @@ describe('ol.layer.Vector', function() { }); var geomFilter = ol.expr.parse('geometryType("linestring")'); - var extentFilter = ol.expr.parse('extent(16, 16.3, 48, 48.3)'); + var extentFilter = ol.expr.parse('extent(16, 48, 16.3, 48.3)'); it('can filter by geometry type using its GeometryType index', function() { sinon.spy(geomFilter, 'evaluate'); diff --git a/test/spec/ol/parser/geojson.test.js b/test/spec/ol/parser/geojson.test.js index 687a71d8bc..a7a472e130 100644 --- a/test/spec/ol/parser/geojson.test.js +++ b/test/spec/ol/parser/geojson.test.js @@ -202,7 +202,7 @@ describe('ol.parser.GeoJSON', function() { var firstGeom = first.getGeometry(); expect(firstGeom).to.be.a(ol.geom.Polygon); expect(ol.extent.equals(firstGeom.getBounds(), - [60.52843, 75.158028, 29.318572, 38.486282])) + [60.52843, 29.318572, 75.158028, 38.486282])) .to.be(true); var last = result[178]; @@ -212,7 +212,7 @@ describe('ol.parser.GeoJSON', function() { var lastGeom = last.getGeometry(); expect(lastGeom).to.be.a(ol.geom.Polygon); expect(ol.extent.equals(lastGeom.getBounds(), - [25.264226, 32.849861, -22.271612, -15.507787])) + [25.264226, -22.271612, 32.849861, -15.507787])) .to.be(true); done(); }); @@ -251,7 +251,7 @@ describe('ol.parser.GeoJSON', function() { var firstGeom = first.getGeometry(); expect(firstGeom).to.be.a(ol.geom.Polygon); expect(ol.extent.equals(firstGeom.getBounds(), - [60.52843, 75.158028, 29.318572, 38.486282])) + [60.52843, 29.318572, 75.158028, 38.486282])) .to.be(true); var last = result[178]; @@ -260,7 +260,7 @@ describe('ol.parser.GeoJSON', function() { var lastGeom = last.getGeometry(); expect(lastGeom).to.be.a(ol.geom.Polygon); expect(ol.extent.equals(lastGeom.getBounds(), - [25.264226, 32.849861, -22.271612, -15.507787])) + [25.264226, -22.271612, 32.849861, -15.507787])) .to.be(true); }); }); diff --git a/test/spec/ol/parser/ogc/gml_v2.test.js b/test/spec/ol/parser/ogc/gml_v2.test.js index 9f564d5284..dc79f7bebe 100644 --- a/test/spec/ol/parser/ogc/gml_v2.test.js +++ b/test/spec/ol/parser/ogc/gml_v2.test.js @@ -204,7 +204,7 @@ describe('ol.parser.gml_v2', function() { var url = 'spec/ol/parser/ogc/xml/gml_v2/box-coord.xml'; afterLoadXml(url, function(xml) { var obj = parser.read(xml); - expect(obj.bounds).to.eql([1, 3, 2, 4]); + expect(obj.bounds).to.eql([1, 2, 3, 4]); done(); }); }); @@ -212,7 +212,7 @@ describe('ol.parser.gml_v2', function() { var url = 'spec/ol/parser/ogc/xml/gml_v2/box-coordinates.xml'; afterLoadXml(url, function(xml) { var obj = parser.read(xml); - expect(obj.bounds).to.eql([1, 3, 2, 4]); + expect(obj.bounds).to.eql([1, 2, 3, 4]); done(); }); }); diff --git a/test/spec/ol/parser/ogc/gml_v3.test.js b/test/spec/ol/parser/ogc/gml_v3.test.js index 9bd2fc869d..f86cacde95 100644 --- a/test/spec/ol/parser/ogc/gml_v3.test.js +++ b/test/spec/ol/parser/ogc/gml_v3.test.js @@ -9,7 +9,7 @@ describe('ol.parser.gml_v3', function() { var url = 'spec/ol/parser/ogc/xml/gml_v3/envelope.xml'; afterLoadXml(url, function(xml) { var obj = parser.read(xml); - expect(obj.bounds).to.eql([1, 3, 2, 4]); + expect(obj.bounds).to.eql([1, 2, 3, 4]); done(); }); }); diff --git a/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js b/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js index 789fb41977..a4c00991db 100644 --- a/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js +++ b/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js @@ -49,8 +49,10 @@ describe('ol.parser.ogc.wmscapabilities_v1_1_1', function() { expect(layer.title).to.eql('Manhattan (NY) roads'); var abstr = 'Highly simplified road layout of Manhattan in New York..'; expect(layer['abstract']).to.eql(abstr); - var bbox = [-74.08769307536667, 40.660618924633326, - -73.84653192463333, 40.90178007536667]; + var bbox = [ + -74.08769307536667, 40.660618924633326, + -73.84653192463333, 40.90178007536667 + ]; expect(layer.llbbox).to.eql(bbox); expect(layer.styles.length).to.eql(1); expect(layer.styles[0].name).to.eql('tiger_roads'); diff --git a/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js b/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js index 47f3071ddd..ba2b3c50f4 100644 --- a/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js +++ b/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js @@ -16,8 +16,10 @@ describe('ol.parser.ogc.wmscapabilities_v1_1_1_wmsc', function() { tilesets = obj.capability.vendorSpecific.tileSets; tileset = tilesets[0]; expect(tilesets.length).to.eql(2); - var bbox = [-13697515.466796875, 5165920.118906248, - -13619243.94984375, 5244191.635859374]; + var bbox = [ + -13697515.466796875, 5165920.118906248, + -13619243.94984375, 5244191.635859374 + ]; expect(tileset.bbox['EPSG:900913'].bbox).to.eql(bbox); expect(tileset.format).to.eql('image/png'); expect(tileset.height).to.eql(256); diff --git a/test/spec/ol/parser/topojson.test.js b/test/spec/ol/parser/topojson.test.js index aa80cf2d28..9cda1170d9 100644 --- a/test/spec/ol/parser/topojson.test.js +++ b/test/spec/ol/parser/topojson.test.js @@ -47,10 +47,8 @@ describe('ol.parser.TopoJSON', function() { expect(geometry).to.be.a(ol.geom.Polygon); expect(geometry.getBounds()).to.eql([ - -70.08100810081008, - -69.9009900990099, - 12.417091709170947, - 12.608069195591469 + -70.08100810081008, 12.417091709170947, + -69.9009900990099, 12.608069195591469 ]); }); @@ -89,17 +87,16 @@ describe('ol.parser.TopoJSON', function() { expect(first).to.be.a(ol.Feature); var firstGeom = first.getGeometry(); expect(firstGeom).to.be.a(ol.geom.MultiPolygon); - expect(firstGeom.getBounds()).to.eql([ - -180, 180, -85.60903777459777, 83.64513000000002 - ]); + expect(firstGeom.getBounds()).to.eql( + [-180, -85.60903777459777, 180, 83.64513000000002]); var last = result.features[177]; expect(last).to.be.a(ol.Feature); var lastGeom = last.getGeometry(); expect(lastGeom).to.be.a(ol.geom.Polygon); expect(lastGeom.getBounds()).to.eql([ - 25.26325263252633, 32.848528485284874, - -22.271802279310577, -15.50833810039586 + 25.26325263252633, -22.271802279310577, + 32.848528485284874, -15.50833810039586 ]); done(); diff --git a/test/spec/ol/proj/chprojection.test.js b/test/spec/ol/proj/chprojection.test.js index a4a814c595..5b86aa6f20 100644 --- a/test/spec/ol/proj/chprojection.test.js +++ b/test/spec/ol/proj/chprojection.test.js @@ -90,8 +90,8 @@ describe('ol.proj.EPSG21781', function() { var fromEPSG4326 = ol.proj.getTransform('EPSG:4326', 'EPSG:21781'); var toEPSG4326 = ol.proj.getTransform('EPSG:21781', 'EPSG:4326'); var roundTripped, x, y; - for (x = extent[0]; x < extent[1]; x += 50000) { - for (y = extent[2]; y < extent[3]; y += 50000) { + for (x = extent[0]; x < extent[2]; x += 50000) { + for (y = extent[1]; y < extent[3]; y += 50000) { roundTripped = fromEPSG4326(toEPSG4326([x, y])); expect(roundTripped).to.be.an(Array); expect(roundTripped).to.have.length(2); diff --git a/test/spec/ol/proj/proj.test.js b/test/spec/ol/proj/proj.test.js index 4c80a78ec5..313d3234cb 100644 --- a/test/spec/ol/proj/proj.test.js +++ b/test/spec/ol/proj/proj.test.js @@ -284,7 +284,7 @@ describe('ol.proj', function() { describe('ol.proj.removeTransform()', function() { - var extent = [180, 180, -90, 90]; + var extent = [180, -90, 180, 90]; var units = ol.ProjectionUnits.DEGREES; it('removes functions cached by addTransform', function() { @@ -347,7 +347,7 @@ describe('ol.proj', function() { }); it('returns a configured projection', function() { - var extent = [485869.5728, 837076.5648, 76443.1884, 299941.7864]; + var extent = [485869.5728, 76443.1884, 837076.5648, 299941.7864]; var epsg21781 = ol.proj.configureProj4jsProjection({ code: 'EPSG:21781', extent: extent diff --git a/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js b/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js index c5f7ef1ba9..c9b9844cb6 100644 --- a/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js +++ b/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js @@ -17,7 +17,7 @@ describe('ol.renderer.webgl.ImageLayer', function() { }); var layer = new ol.layer.Image({ source: new ol.source.Image({ - extent: [0, 1, 0, 1] + extent: [0, 0, 1, 1] }) }); renderer = new ol.renderer.webgl.ImageLayer(map.getRenderer(), layer); @@ -32,7 +32,7 @@ describe('ol.renderer.webgl.ImageLayer', function() { // image size is 1024, 768 // image resolution is 10 - imageExtent = [0, 10240, 0, 7680]; + imageExtent = [0, 0, 10240, 7680]; }); afterEach(function() { diff --git a/test/spec/ol/source/tilesource.test.js b/test/spec/ol/source/tilesource.test.js index 948fc47dc8..e643d8f4ea 100644 --- a/test/spec/ol/source/tilesource.test.js +++ b/test/spec/ol/source/tilesource.test.js @@ -192,7 +192,7 @@ describe('ol.source.Tile', function() { * @param {Object.} loaded Lookup of already loaded tiles. */ ol.test.source.TileMock = function(loaded) { - var extent = [-180, 180, -180, 180]; + var extent = [-180, -180, 180, 180]; var tileGrid = new ol.tilegrid.TileGrid({ resolutions: [360 / 256, 180 / 256, 90 / 256, 45 / 256], extent: extent, diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index ee40475a22..8029a492aa 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -20,7 +20,7 @@ describe('ol.source.Vector', function() { var layer = new ol.layer.Vector({ source: source }); - source.prepareFeatures(layer, [-180, 180, -90, 90], + source.prepareFeatures(layer, [-180, -90, 180, 90], ol.proj.get('EPSG:4326'), function() { expect(source.loadState_).to.be(ol.source.VectorLoadState.LOADED); @@ -66,7 +66,7 @@ describe('ol.source.Vector', function() { var layer = new ol.layer.Vector({ source: source }); - source.prepareFeatures(layer, [-180, 180, -90, 90], + source.prepareFeatures(layer, [-180, -90, 180, 90], ol.proj.get('EPSG:4326'), function() { expect(source.loadState_).to.be(ol.source.VectorLoadState.LOADED); diff --git a/test/spec/ol/source/wmssource.test.js b/test/spec/ol/source/wmssource.test.js index af93e5c7e8..fb23af0dbf 100644 --- a/test/spec/ol/source/wmssource.test.js +++ b/test/spec/ol/source/wmssource.test.js @@ -5,7 +5,7 @@ describe('ol.source.wms', function() { describe('ol.source.wms.getUrl', function() { it('creates expected URL', function() { var epsg3857 = ol.proj.get('EPSG:3857'); - var extent = [-20037508.342789244, 0, -20037508.342789244, 0]; + var extent = [-20037508.342789244, -20037508.342789244, 0, 0]; var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' + 'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' + 'foo=bar&STYLES=&CRS=EPSG%3A3857&BBOX=' + @@ -16,7 +16,7 @@ describe('ol.source.wms', function() { }); it('creates expected URL respecting axis orientation', function() { var epsg4326 = ol.proj.get('EPSG:4326'); - var extent = [-180, 0, -90, 90]; + var extent = [-180, -90, 0, 90]; var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' + 'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' + 'foo=bar&STYLES=&CRS=EPSG%3A4326&BBOX=-90%2C-180%2C90%2C0'; diff --git a/test/spec/ol/structs/rtree.test.js b/test/spec/ol/structs/rtree.test.js index 0313efdce5..0a65afb978 100644 --- a/test/spec/ol/structs/rtree.test.js +++ b/test/spec/ol/structs/rtree.test.js @@ -9,29 +9,25 @@ describe('ol.structs.RTree', function() { it('can insert 1k objects', function() { var i = 1000; while (i > 0) { - var bounds = new Array(4); - bounds[0] = Math.random() * 10000; - bounds[1] = bounds[0] + Math.random() * 500; - bounds[2] = Math.random() * 10000; - bounds[3] = bounds[2] + Math.random() * 500; + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; rTree.insert(bounds, 'JUST A TEST OBJECT!_' + i); i--; } - expect(goog.object.getCount(rTree.search([0, 10600, 0, 10600]))) + expect(goog.object.getCount(rTree.search([0, 0, 10600, 10600]))) .to.be(1000); }); it('can insert 1k more objects', function() { var i = 1000; while (i > 0) { - var bounds = new Array(4); - bounds[0] = Math.random() * 10000; - bounds[1] = bounds[0] + Math.random() * 500; - bounds[2] = Math.random() * 10000; - bounds[3] = bounds[2] + Math.random() * 500; + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; rTree.insert(bounds, 'JUST A TEST OBJECT!_' + i); i--; } - expect(goog.object.getCount(rTree.search([0, 10600, 0, 10600]))) + expect(goog.object.getCount(rTree.search([0, 0, 10600, 10600]))) .to.be(2000); }); }); @@ -41,11 +37,10 @@ describe('ol.structs.RTree', function() { var i = 1000; var len = 0; while (i > 0) { - var bounds = new Array(4); - bounds[0] = -(Math.random() * 10000 + 501); - bounds[1] = bounds[0] + Math.random() * 500; - bounds[2] = -(Math.random() * 10000 + 501); - bounds[3] = bounds[2] + Math.random() * 500; + var min = [-(Math.random() * 10000 + 501), + -(Math.random() * 10000 + 501)]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; len += rTree.search(bounds).length; i--; } @@ -55,11 +50,9 @@ describe('ol.structs.RTree', function() { var i = 1000; var len = 0; while (i > 0) { - var bounds = new Array(4); - bounds[0] = Math.random() * 10000; - bounds[1] = bounds[0] + Math.random() * 500; - bounds[2] = Math.random() * 10000; - bounds[3] = bounds[2] + Math.random() * 500; + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; len += rTree.search(bounds).length; i--; } @@ -70,12 +63,12 @@ describe('ol.structs.RTree', function() { describe('deletion', function() { var len = 0; it('can delete half the RTree', function() { - var bounds = [5000, 10500, 0, 10500]; + var bounds = [5000, 0, 10500, 10500]; len += rTree.remove(bounds).length; expect(len).to.not.be(0); }); it('can delete the other half of the RTree', function() { - var bounds = [0, 5000, 0, 10500]; + var bounds = [0, 0, 5000, 10500]; len += rTree.remove(bounds).length; expect(len).to.be(2000); }); @@ -84,42 +77,42 @@ describe('ol.structs.RTree', function() { describe('result plausibility and structure', function() { it('filters by rectangle', function() { - rTree.insert([0, 1, 0, 1], 1); - rTree.insert([1, 4, 1, 4], 2); - rTree.insert([2, 3, 2, 3], 3); - rTree.insert([-5, -4, -5, -4], 4); - rTree.insert([-4, -1, -4, -1], 5); - rTree.insert([-3, -2, -3, -2], 6); + rTree.insert([0, 0, 1, 1], 1); + rTree.insert([1, 1, 4, 4], 2); + rTree.insert([2, 2, 3, 3], 3); + rTree.insert([-5, -5, -4, -4], 4); + rTree.insert([-4, -4, -1, -1], 5); + rTree.insert([-3, -3, -2, -2], 6); var result; - result = goog.object.getValues(rTree.search([2, 3, 2, 3])); + result = goog.object.getValues(rTree.search([2, 2, 3, 3])); expect(result).to.contain(2); expect(result).to.contain(3); expect(result.length).to.be(2); - result = goog.object.getValues(rTree.search([-1, 2, -1, 2])); + result = goog.object.getValues(rTree.search([-1, -1, 2, 2])); expect(result).to.contain(1); expect(result).to.contain(2); expect(result).to.contain(3); expect(result).to.contain(5); expect(result.length).to.be(4); - expect(goog.object.getCount(rTree.search([5, 6, 5, 6]))).to.be(0); + expect(goog.object.getCount(rTree.search([5, 5, 6, 6]))).to.be(0); }); it('filters by type', function() { - rTree.insert([2, 3, 2, 3], 7, 'type1'); + rTree.insert([2, 2, 3, 3], 7, 'type1'); var result; - result = rTree.search([1, 4, 2, 4], 'type1'); + result = rTree.search([1, 2, 4, 4], 'type1'); expect(result).to.contain(7); expect(result.length).to.be(1); - result = rTree.search([1, 4, 2, 4]); + result = rTree.search([1, 2, 4, 4]); expect(result.length).to.be(3); }); it('can return objects instead of arrays', function() { var obj = {foo: 'bar'}; rTree.insert([5, 5, 5, 5], obj); - var result = rTree.searchReturningObject([4, 6, 4, 6]); + var result = rTree.searchReturningObject([4, 4, 6, 6]); expect(result[goog.getUid(obj)]).to.equal(obj); }); diff --git a/test/spec/ol/tilegrid/tilegrid.test.js b/test/spec/ol/tilegrid/tilegrid.test.js index 8a4e9fef2a..86700b6be6 100644 --- a/test/spec/ol/tilegrid/tilegrid.test.js +++ b/test/spec/ol/tilegrid/tilegrid.test.js @@ -9,7 +9,7 @@ describe('ol.tilegrid.TileGrid', function() { beforeEach(function() { resolutions = [1000, 500, 250, 100]; - extent = [0, 100000, 0, 100000]; + extent = [0, 0, 100000, 100000]; origin = [0, 0]; origins = []; tileSize = [100, 100]; @@ -463,20 +463,20 @@ describe('ol.tilegrid.TileGrid', function() { tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(0, 0, 0)); expect(tileCoordExtent[0]).to.eql(0); - expect(tileCoordExtent[1]).to.eql(100000); - expect(tileCoordExtent[2]).to.eql(0); + expect(tileCoordExtent[2]).to.eql(100000); + expect(tileCoordExtent[1]).to.eql(0); expect(tileCoordExtent[3]).to.eql(100000); tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(3, 9, 0)); expect(tileCoordExtent[0]).to.eql(90000); - expect(tileCoordExtent[1]).to.eql(100000); - expect(tileCoordExtent[2]).to.eql(0); + expect(tileCoordExtent[2]).to.eql(100000); + expect(tileCoordExtent[1]).to.eql(0); expect(tileCoordExtent[3]).to.eql(10000); tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(3, 0, 9)); expect(tileCoordExtent[0]).to.eql(0); - expect(tileCoordExtent[1]).to.eql(10000); - expect(tileCoordExtent[2]).to.eql(90000); + expect(tileCoordExtent[2]).to.eql(10000); + expect(tileCoordExtent[1]).to.eql(90000); expect(tileCoordExtent[3]).to.eql(100000); }); }); @@ -529,7 +529,7 @@ describe('ol.tilegrid.TileGrid', function() { origin: origin, tileSize: tileSize }); - var e = [45000, 55000, 5000, 15000]; + var e = [45000, 5000, 55000, 15000]; var tileRange; tileRange = tileGrid.getTileRangeForExtentAndZ(e, 0);