Clear the cache on Strategy.Cluster when features are removed.

This prevents reappearing the removed features after zooming.
This commit is contained in:
Xavier Mamano
2012-10-16 18:43:53 +02:00
parent 0b46f19ba6
commit 3c416a4d60

View File

@@ -79,6 +79,7 @@ OpenLayers.Strategy.Cluster = OpenLayers.Class(OpenLayers.Strategy, {
if(activated) {
this.layer.events.on({
"beforefeaturesadded": this.cacheFeatures,
"featuresremoved": this.clearCache,
"moveend": this.cluster,
scope: this
});
@@ -100,6 +101,7 @@ OpenLayers.Strategy.Cluster = OpenLayers.Class(OpenLayers.Strategy, {
this.clearCache();
this.layer.events.un({
"beforefeaturesadded": this.cacheFeatures,
"featuresremoved": this.clearCache,
"moveend": this.cluster,
scope: this
});
@@ -134,7 +136,9 @@ OpenLayers.Strategy.Cluster = OpenLayers.Class(OpenLayers.Strategy, {
* Clear out the cached features.
*/
clearCache: function() {
this.features = null;
if(!this.clustering) {
this.features = null;
}
},
/**
@@ -169,7 +173,9 @@ OpenLayers.Strategy.Cluster = OpenLayers.Class(OpenLayers.Strategy, {
}
}
}
this.clustering = true;
this.layer.removeAllFeatures();
this.clustering = false;
if(clusters.length > 0) {
if(this.threshold > 1) {
var clone = clusters.slice();