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:
@@ -597,7 +597,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
|||||||
if(this.events.triggerEvent("beforefeatureadded",
|
if(this.events.triggerEvent("beforefeatureadded",
|
||||||
{feature: feature}) === false) {
|
{feature: feature}) === false) {
|
||||||
continue;
|
continue;
|
||||||
};
|
}
|
||||||
this.preFeatureInsert(feature);
|
this.preFeatureInsert(feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -816,7 +816,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
|||||||
this.unrenderedFeatures[feature.id] = feature;
|
this.unrenderedFeatures[feature.id] = feature;
|
||||||
} else {
|
} else {
|
||||||
delete this.unrenderedFeatures[feature.id];
|
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.
|
* Calculates the max extent which includes all of the features.
|
||||||
*
|
*
|
||||||
* Returns:
|
* Returns:
|
||||||
* {<OpenLayers.Bounds>}
|
* {<OpenLayers.Bounds>} or null if the layer has no features with
|
||||||
|
* geometries.
|
||||||
*/
|
*/
|
||||||
getDataExtent: function () {
|
getDataExtent: function () {
|
||||||
var maxExtent = null;
|
var maxExtent = null;
|
||||||
var features = this.features;
|
var features = this.features;
|
||||||
if(features && (features.length > 0)) {
|
if(features && (features.length > 0)) {
|
||||||
maxExtent = new OpenLayers.Bounds();
|
|
||||||
var geometry = null;
|
var geometry = null;
|
||||||
for(var i=0, len=features.length; i<len; i++) {
|
for(var i=0, len=features.length; i<len; i++) {
|
||||||
geometry = features[i].geometry;
|
geometry = features[i].geometry;
|
||||||
if (geometry) {
|
if (geometry) {
|
||||||
|
if (maxExtent === null) {
|
||||||
|
maxExtent = new OpenLayers.Bounds();
|
||||||
|
}
|
||||||
maxExtent.extend(geometry.getBounds());
|
maxExtent.extend(geometry.getBounds());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -286,6 +286,14 @@
|
|||||||
t.ok(extent.toBBOX() != layer.features[0].geometry.getBounds().toBBOX(), "extent from getDataExtent doesn't clobber first feature");
|
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) {
|
function test_Layer_Vector_removeFeatures(t) {
|
||||||
t.plan(17);
|
t.plan(17);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user