[OpenLayers-Users] SLD PointSymbolizer - size defined with variable

Bart van den Eijnden bartvde at osgis.nl
Fri Jun 4 10:08:05 EDT 2010


Use ${myattributename}, see e.g. vector-features-with-text.html in the examples dir.

Best regards,
Bart
 
On Jun 4, 2010, at 4:00 PM, Martin.L wrote:

> 
> Keywords: GeoServer 2.0.2, OpenLayers, SLD
> 
> Hey there!
> 
> Is it possible to define the size of a PointSymbolizer with a variable? So
> far the SLD-Code looks like this:
> 
> 
> [...]
> <Rule>
>   <Title>Magnitude &lt; 3</Title>
>       <ogc:Filter>
> 	  <ogc:PropertyIsLessThan>
> 		<ogc:PropertyName>magnitude</ogc:PropertyName>
> 		<ogc:Literal>3</ogc:Literal>
>          </ogc:PropertyIsLessThan>
>       </ogc:Filter>
>       <PointSymbolizer>
> 	  <Graphic>
>             <Mark>
>                <WellKnownName>circle</WellKnownName>
> 	           <Fill>
> 			<CssParameter name="fill-opacity">0.4</CssParameter>
> 			<CssParameter name="fill">#FF0000</CssParameter>
> 		   </Fill>
>             </Mark>
>             <Size>4</Size>
>          </Graphic>
>       </PointSymbolizer>
> </Rule>
> [...]
> 
> 
> Now I want to replace the constant size 4 with a variable which contains a
> double value (magnitude). How can I realize it?
> 
> I found an idea with GeoServer 2.0.2. Perhaps you find a further solution
> for it. With GeoServer 2.0.2 you can use Parameter substitution in SLD (
> http://docs.geoserver.org/stable/en/user/styling/sld-extensions/substitution.html
> Parameter Substitution ). So I made a new SLD looks like this:
> 
> 
> [...]
> <PointSymbolizer>
>   <Graphic>
>        <Mark>
>            <WellKnownName>circle</WellKnownName>
> 		<Fill>
> 		     <CssParameter name="fill">
> 			#<ogc:Function name="env">
> 			     <ogc:Literal>color</ogc:Literal>
> 			     <ogc:Literal>FF0000</ogc:Literal>
> 		          </ogc:Function>
> 		     </CssParameter>
> 		</Fill>
>        </Mark>
>        <Size>
> 	     <ogc:Function name="env">
> 		  <ogc:Literal>size</ogc:Literal>
> 		  <ogc:Literal>6</ogc:Literal>
> 	     </ogc:Function>
>        </Size>
>    </Graphic>
> </PointSymbolizer>
> [...]
> 
> 
> With this SLD you can manipulate the WMS-request with a env-Parameter in a
> adressbar or in OpenLayers WMS-request looking like this:
> 
> 
> earthquakes = new OpenLayers.Layer.WMS(
>        "Earthquakes",
>        "/geoserver/wms?",
>        {
> 		layers: "cite:EarthquakeView",
> 		env: "size:16", //<<------
> 		transparent: "true"
>        }, 
> 	{
>        	buffer: 0,
>        	visibility: true,
>        	isBaseLayer: false,
> 		displayInLayerSwitcher: true
>        }
> );
> 
> 
> Is it possible to get a value from WMS-request from GeoServer or from my db
> where the data is stored? If it is, I could add this value to the
> env-parameter.
> 
> A great thank you in advance.
> Martin
> -- 
> View this message in context: http://osgeo-org.1803224.n2.nabble.com/SLD-PointSymbolizer-size-defined-with-variable-tp5139542p5139542.html
> Sent from the OpenLayers Users mailing list archive at Nabble.com.
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
> 




More information about the Users mailing list