Hi,

Thanks for your reply, what I had for the radius value was ${radius} just like 
in the exemple.

I figured out that my problem was not in the radius definition itself but in 
the layer definition, first my style definition was at the wrong place then I 
had to define the styleMap out of the vector and my style out of the styleMap 
and it worked :

var myStyle = new OpenLayers.Style( {
    pointRadius :"${radius}",
    fillColor :defaultFillColor,
    fillOpacity :defaultOpacity,
    strokeColor :defaultStrokeColor,
    strokeWidth :defaultStrokeWidth,
    strokeOpacity :defaultStrokeOpacity
}, {
    context : {
        radius: function(feature) {
            return Math.min(feature.attributes.count, 7) + 3;
        }
    }
});
:

var myStyleMap = new OpenLayers.StyleMap( {
    "default" :myStyle
});

new OpenLayers.Layer.Vector(layerStationsName,
             {
        strategies: [
             new OpenLayers.Strategy.Fixed(),
             new OpenLayers.Strategy.Cluster()                 
        ],
        protocol: new OpenLayers.Protocol.HTTP({
             url: geoserverUrl+ "/wfs",
             params: {
                  format: SERVICE_WFS,
                  service: SERVICE_WFS,
                  request: REQUEST_WFS,
                  srs: defaultProjection,                            
                  VERSION : VERSION,
                  typename : myLayer,
                  useBbox: true,
                  bbox: bounds.toBBOX()
             },
             format: new OpenLayers.Format.GML()                       
        }),
        styleMap: myStyleMap
   });

It all work perfectly now, exept from some troubles with IE but that's another 
thing..

Sylvie

> Subject: RE: [OpenLayers-Users] problem using pointRadius computed in context
> Date: Mon, 16 Mar 2009 08:57:56 -0400
> From: [email protected]
> To: [email protected]; [email protected]
> CC: [email protected]
> 
> I don't see what you had before but this wont work because
> pointRadius has to be a number, not a function.
> You can use a function to create the number:
> 
> //Styles
>       var clusterStyle = new OpenLayers.Style({
>             pointRadius: "${radius}",
>             fillColor: '#ee9900',
>             fillOpacity: 0.8,
>             strokeColor: '#ee9900',
>             strokeWidth: 1,
>             strokeOpacity: 0.8,
>               cursor: 'pointer'
>         }, {
>             context: {
>                 radius: function(feature) {
>       
> if(typeof(feature.attributes.count) != 'undefined')
>                                       {
>                                               return
> Math.min(feature.attributes.count, 7) + 3;
>                                       }
>                                       return 4;
>                 }
>             }
>         }); 
> 
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of Didrik Pinte
> Sent: Monday, March 16, 2009 6:52 AM
> To: sylvie fiat
> Cc: [email protected]
> Subject: Re: [OpenLayers-Users] problem using pointRadius computed in
> context
> 
> On Sun, 2009-03-08 at 23:12 -0700, sylvie fiat wrote:
> > Hi,
> > 
> > I have the same problem and it's taking me hours, did you figure out 
> > what was the problem ?
> > I have tried : 
> > styleMap: new OpenLayers.StyleMap(OpenLayers.Util.applyDefaults(
> >                                     {       pointRadius:
> function(feature){return
> > Math.min(feature.attributes.count, 7) + 3;},
> >                                             fillColor: "blue", 
> >                                             fillOpacity: 0.5, 
> >                                             strokeColor: "black"},
> >
> OpenLayers.Feature.Vector.style["default"]))
> > 
> > But I got the error:
> > unexpected value function (feature) { return 
> > Math.min(feature.attributes.count, 7) + 3; } parsing r attribute.
> > 
> > Thanks for any help.
> > Sylvie
> 
> Hi Sylvie,
> 
> I guess it was related to some errors in my javascript file. I would
> suggest you to use online javascriptlint to check your syntax and
> identify potential errors. 
> 
> Didrik

_________________________________________________________________
Téléphonez gratuitement à tous vos proches avec Windows Live Messenger  !  
Téléchargez-le maintenant ! 
http://www.windowslive.fr/messenger/1.asp
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to