Clear the cache on Strategy.Cluster when features are removed.
This prevents reappearing the removed features after zooming.
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user