You guys are good to find bugs :-) I think that, instead of listening to the map's zoomend events, the cluster strategy should listen to its layer's moveend events and check in the listener that this is actually a zoom change before doing anything. The moveend listener receives an object with a zoomChanged boolean property. Can one of you try modifying the cluster strategy with that and report back? (don't forget to change the unregistration as well).
Thanks. Eric 2008/11/13, Ivan Grcic <[EMAIL PROTECTED]>: > Hi Alex, > > i made a little hack to it...inside Strategy.Cluster.js inside cluster > function I added one more check: > (OpenLayers.Util.indexOf(this.layer.resolutions, resolution) != -1) > > it doesnt do the clustering if current resolution is not contained > inside layers array of resolutions. > > Index: Cluster.js > =================================================================== > --- Cluster.js (revision 8317) > +++ Cluster.js (working copy) > @@ -141,7 +141,8 @@ > cluster: function() { > if(this.features) { > var resolution = this.layer.map.getResolution(); > - if(resolution != this.resolution || !this.clustersExist()) { > + if((OpenLayers.Util.indexOf(this.layer.resolutions, > resolution) != -1) && (resolution != this.resolution || > !this.clustersExist())) { > this.resolution = resolution; > var clusters = []; > var feature, clustered, cluster; > > Greetings, > Ivan > On Thu, Nov 13, 2008 at 3:02 PM, Alexandre Dube <[EMAIL PROTECTED]> wrote: >> I get the same behavior as Ivan's on my application which has very similar >> resolution settings on map an vector layer. >> >> Because a layer's features are not destroyed when it goes out of range >> (inRange) or becomes invisible (visibility), the cluster strategy still >> clusters those existing features. I don't have that many features to >> display >> when the layer becomes inRange, so I never noticed any slowing down. >> >> Alexandre >> >> Ivan Grcic wrote: >>> >>> This post evolved from previous discussion named "bbox strategy and >>> zooming" >>> >>> Clustering features with cluster strategy takes some time. If there >>> are many features to cluster, it will take even more time :) >>> >>> So there are some scenarios where clustering shouldnt be recalculated. >>> >>> Example: >>> I want to see my cluster layer only after 5th zoom level. No >>> clustering should be made when i play on zoom level 0-4 with other >>> layers, >>> because it slows things down, and the cluster layer is still not >>> visible at all (its only clustering features in background) >>> >>> It should only cluster when layer is visible (and the current map >>> resolution is inside array resolution of clustered layer, if we define >>> seperate set of resolution) >>> >>> So if map has: >>> resolutions: [0,1,2,3,4,5,6,7,8,9] >>> >>> and vector layer: >>> resolutions: [5, 6, 7, 8, 9] >>> >>> clustering should occur only on vector layers resolution :5, 6, 7, 8 and >>> 9. >>> >>> I hope you see where im pointing now, >>> >>> Best regards, >>> >>> >>> >> >> >> -- >> Alexandre Dubé >> Mapgears >> www.mapgears.com >> >> > > > > -- > Ivan Grcic > _______________________________________________ > Dev mailing list > Dev@openlayers.org > http://openlayers.org/mailman/listinfo/dev > _______________________________________________ Dev mailing list Dev@openlayers.org http://openlayers.org/mailman/listinfo/dev