I also noticed that it´s only working that I´ve added the VectorLayer to the map BEFORE I´m adding the features to the VectorLayer.
Greets Max Stephan Max Stephan wrote: > > Hi Jerome and Heidtmare, > > I tried to add all vectorfeatures at once before because I saw that´s the > case in the example-site as well. But it didn´t help. So I performed a > little bit of "trial and error" and after changing my code to > adding-all-features-at-once AND erasing the codeline > clusterStrategy.activate() it works. If I don´t erase it I get the error " > 'this.layer.map' is null or no object". > > Thx to all of you > Max Stephan > > Jerome Freyre wrote: >> >> Heidtmare is right and faster than me.... :D >> >> Have a look to http://openlayers.org/dev/examples/strategy-cluster.html >> to modify the size of cluster depending of the number of feature they >> represent >> >> >> >> Here is a script that is working. And think that you can >> >> PS: Sorry for the "double post" I push the wrong button :) >> >> var map, wfs; >> >> var styleMap1 = new OpenLayers.StyleMap({ >> "default": new OpenLayers.Style( >> { >> fillColor: "#0000FF", >> strokeColor: "#0000FF", >> pointRadius: 6 >> } >> ) >> }); >> >> function init(){ >> map = new OpenLayers.Map('map'); >> var wms = new OpenLayers.Layer.WMS( >> "OpenLayers WMS", >> >> "http://labs.metacarta.com/wms/vmap0?", >> {layers: 'basic'} >> ); >> map.addLayer(wms); >> map.zoomToMaxExtent(); >> >> >> var strat = new >> OpenLayers.Strategy.Cluster({distance:20}); >> >> vectorLayer = new OpenLayers.Layer.Vector("Vektorlayer",{ >> >> strategies: [ >> >> strat >> >> ], >> >> styleMap: styleMap1, maxResolution: 19}); >> >> strat.activate(); >> >> map.addLayers([vectorLayer]); >> >> /** >> * Generate datas // Simulate your data access >> */ >> var dx = 3; >> var dy = 3; >> var px, py; >> featuresToBeClustered = []; >> for(var x=-45; x<=45; x+=dx) { >> for(var y=-22.5; y<=22.5; y+=dy) { >> px = x + (2 * dx * (Math.random() - 0.5)); >> py = y + (2 * dy * (Math.random() - 0.5)); >> featuresToBeClustered.push({ >> 'lonlat':new >> OpenLayers.LonLat(px,py), >> 'id':px+' '+py >> }); >> } >> } >> /** >> * Populate the array of feature >> */ >> var arrayOfFeatures = []; >> for (var i=0; i<featuresToBeClustered.length; i++){ >> arrayOfFeatures.push(generateFeature(vectorLayer, >> featuresToBeClustered[i].lonlat, featuresToBeClustered[i].id)); >> } >> >> /** >> * Add all features in one time >> */ >> vectorLayer.addFeatures(arrayOfFeatures); >> >> >> >> map.setCenter(new OpenLayers.LonLat(0, 0), 2); >> >> } >> /** >> * Modification of you function >> */ >> function generateFeature(layer, lonlat, mestId){ >> var geometryObjekt = new >> OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat); >> var vectorObjekt = new >> OpenLayers.Feature.Vector(geometryObjekt); >> vectorObjekt.attributes.mest = mestId; >> return vectorObjekt; >> } >> >> >> >> >> Heidtmare wrote: >>> >>> i believe you need to add all your features at once, >>> so instead of looping the layer.addFeatures() call >>> you need to build all your features into an array and then call >>> layer.addFeatures() once. >>> >>> >>> >> >> > > -- View this message in context: http://n2.nabble.com/Cluster-strategy-not-working-tp3533851p3552507.html Sent from the OpenLayers Users mailing list archive at Nabble.com. _______________________________________________ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users