Fix getDataExtent() (vector) manipulates feature: patch from vmx, tests by me,

r=me.  (Closes #1822) 


git-svn-id: http://svn.openlayers.org/trunk/openlayers@8349 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2008-11-13 12:12:58 +00:00
parent e547d61472
commit 07ff407da5
2 changed files with 18 additions and 3 deletions

View File

@@ -736,9 +736,10 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
*/ */
getDataExtent: function () { getDataExtent: function () {
var maxExtent = null; var maxExtent = null;
if( this.features && (this.features.length > 0)){
var maxExtent = this.features[0].geometry.getBounds(); if(this.features && (this.features.length > 0)) {
for(var i=0, len=this.features.length; i<len; i++){ maxExtent = new OpenLayers.Bounds();
for(var i=0, len=this.features.length; i<len; i++) {
maxExtent.extend(this.features[i].geometry.getBounds()); maxExtent.extend(this.features[i].geometry.getBounds());
} }
} }

View File

@@ -107,6 +107,20 @@
t.eq(extent.toBBOX(), "-111.04,45.68,-111.04,45.68", "extent from getDataExtent is correct"); t.eq(extent.toBBOX(), "-111.04,45.68,-111.04,45.68", "extent from getDataExtent is correct");
} }
function test_Layer_Vector_getDataExtent(t) {
t.plan(1);
var layer = new OpenLayers.Layer.Vector(name);
var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
var pointFeature = new OpenLayers.Feature.Vector(point);
layer.addFeatures([pointFeature]);
var point = new OpenLayers.Geometry.Point(-111.04, 5.68);
var pointFeature = new OpenLayers.Feature.Vector(point);
layer.addFeatures([pointFeature]);
var extent = layer.getDataExtent();
t.ok(extent.toBBOX() != layer.features[0].geometry.getBounds().toBBOX(), "extent from getDataExtent doesn't clobber first feature");
}
function test_Layer_Vector_removeFeatures(t) { function test_Layer_Vector_removeFeatures(t) {
t.plan(6); t.plan(6);