Clear null geometry features in ol.source.Vector#clear

This commit is contained in:
Tom Payne
2013-12-19 13:36:21 +01:00
parent f1fac356dd
commit b2c822c9ca
2 changed files with 7 additions and 2 deletions
+4
View File
@@ -130,6 +130,10 @@ ol.source.Vector.prototype.addFeaturesInternal = function(features) {
ol.source.Vector.prototype.clear = function() { ol.source.Vector.prototype.clear = function() {
this.rBush_.forEach(this.removeFeatureInternal, this); this.rBush_.forEach(this.removeFeatureInternal, this);
this.rBush_.clear(); this.rBush_.clear();
goog.object.forEach(
this.nullGeometryFeatures_, this.removeFeatureInternal, this);
goog.object.clear(this.nullGeometryFeatures_);
goog.asserts.assert(goog.object.isEmpty(this.featureChangeKeys_));
this.dispatchChangeEvent(); this.dispatchChangeEvent();
}; };
+3 -2
View File
@@ -66,7 +66,7 @@ describe('ol.source.Vector', function() {
}); });
describe('when populated with 10 random points', function() { describe('when populated with 10 random points and a null', function() {
var features; var features;
var vectorSource; var vectorSource;
@@ -77,6 +77,7 @@ describe('ol.source.Vector', function() {
features[i] = features[i] =
new ol.Feature(new ol.geom.Point([Math.random(), Math.random()])); new ol.Feature(new ol.geom.Point([Math.random(), Math.random()]));
} }
features.push(new ol.Feature(null));
vectorSource = new ol.source.Vector({ vectorSource = new ol.source.Vector({
features: features features: features
}); });
@@ -95,7 +96,7 @@ describe('ol.source.Vector', function() {
expect(changeSpy).to.be.called(); expect(changeSpy).to.be.called();
expect(changeSpy.callCount).to.be(1); expect(changeSpy.callCount).to.be(1);
expect(removeFeatureSpy).to.be.called(); expect(removeFeatureSpy).to.be.called();
expect(removeFeatureSpy.callCount).to.be(10); expect(removeFeatureSpy.callCount).to.be(features.length);
}); });
}); });