getDataExtent should return null when there are no features with a geometry, r=ahocevar (closes #3435)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@12187 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
bartvde
2011-07-25 13:13:46 +00:00
parent a6e913d5fb
commit 110acd3f84
2 changed files with 15 additions and 4 deletions

View File

@@ -597,7 +597,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
if(this.events.triggerEvent("beforefeatureadded",
{feature: feature}) === false) {
continue;
};
}
this.preFeatureInsert(feature);
}
@@ -816,7 +816,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
this.unrenderedFeatures[feature.id] = feature;
} else {
delete this.unrenderedFeatures[feature.id];
};
}
},
/**
@@ -988,17 +988,20 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
* Calculates the max extent which includes all of the features.
*
* Returns:
* {<OpenLayers.Bounds>}
* {<OpenLayers.Bounds>} or null if the layer has no features with
* geometries.
*/
getDataExtent: function () {
var maxExtent = null;
var features = this.features;
if(features && (features.length > 0)) {
maxExtent = new OpenLayers.Bounds();
var geometry = null;
for(var i=0, len=features.length; i<len; i++) {
geometry = features[i].geometry;
if (geometry) {
if (maxExtent === null) {
maxExtent = new OpenLayers.Bounds();
}
maxExtent.extend(geometry.getBounds());
}
}

View File

@@ -286,6 +286,14 @@
t.ok(extent.toBBOX() != layer.features[0].geometry.getBounds().toBBOX(), "extent from getDataExtent doesn't clobber first feature");
}
function test_Layer_Vector_getDataExtentEmpty(t) {
t.plan(1);
var layer = new OpenLayers.Layer.Vector(name);
layer.addFeatures([new OpenLayers.Feature.Vector(null), new OpenLayers.Feature.Vector(null)]);
var extent = layer.getDataExtent();
t.eq(extent, null, "We expect null to be returned if there are no features with a geometry");
}
function test_Layer_Vector_removeFeatures(t) {
t.plan(17);