From ecd291cb012b00be82818cb7dfbd80383b8310fa Mon Sep 17 00:00:00 2001 From: crschmidt Date: Wed, 16 Apr 2008 01:56:21 +0000 Subject: [PATCH] Add getDataExtent to Vector Layer. Patch from rupert, tests by me, r=me (Closes #1369) git-svn-id: http://svn.openlayers.org/trunk/openlayers@6947 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Layer/Vector.js | 19 +++++++++++++++++++ tests/Layer/Vector.html | 5 ++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/OpenLayers/Layer/Vector.js b/lib/OpenLayers/Layer/Vector.js index 26570f1311..4ede7dcbc8 100644 --- a/lib/OpenLayers/Layer/Vector.js +++ b/lib/OpenLayers/Layer/Vector.js @@ -534,5 +534,24 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { preFeatureInsert: function(feature) { }, + /** + * APIMethod: getDataExtent + * Calculates the max extent which includes all of the features. + * + * Returns: + * {} + */ + getDataExtent: function () { + var maxExtent = null; + if( this.features && (this.features.length > 0)){ + var maxExtent = this.features[0].geometry.getBounds(); + for(var i=0; i < this.features.length; i++){ + maxExtent.extend(this.features[i].geometry.getBounds()); + } + } + + return maxExtent; + }, + CLASS_NAME: "OpenLayers.Layer.Vector" }); diff --git a/tests/Layer/Vector.html b/tests/Layer/Vector.html index 77df2a96d6..f1ab1a9839 100644 --- a/tests/Layer/Vector.html +++ b/tests/Layer/Vector.html @@ -16,7 +16,7 @@ } function test_Layer_Vector_addFeatures(t) { - t.plan(4); + t.plan(5); var layer = new OpenLayers.Layer.Vector(name); @@ -43,6 +43,9 @@ } layer.addFeatures([pointFeature], {silent: true}); + + var extent = layer.getDataExtent(); + t.eq(extent.toBBOX(), "-111.04,45.68,-111.04,45.68", "extent from getDataExtent is correct"); } function test_Layer_Vector_removeFeatures(t) {