[OpenLayers-Users] How to make symbolizers use attribute values in OpenLayers.Layer.WMS?
joaorodr84
joaorodr84 at gmail.com
Thu May 21 18:39:08 PDT 2015
I know it works like a charm for vector layers. But considering that we can
make the symbolizers use attribute values in the SLD, I think OpenLayers
should support it. But apparently it doesn't.
In the example below, I have a layer with 10 points, where the attribute
*ogc_fid* has the values 1, 2, ..., 10.
I want the stroke width of each point to be the value of its *ogc_fid*
attribute. Here <http://codepen.io/joaorodr84/pen/LVRQgg> is the whole
code, but I will explain the most important parts.
/* Rule */
var rule = new OpenLayers.Rule({
filter: filter,
symbolizer: {
Point: {
fillColor: '#dddd00',
fillOpacity: 1,
pointRadius: 30,
strokeWidth: '${ogc_fid}',
graphicName: 'circle'
},
Text: {
label: '${ogc_fid}'
}
}
});
Above, I have the rule, where I use *strokeWidth: '${ogc_fid}'* indicating
that I want the stroke width to assume the value of the `ogc_fid` attribute
of its respective point.
I convert it to SLD using the *OpenLayers.Format.SLD().write* method, and I
get this:
<sld:CssParameter name="stroke-width">${ogc_fid}</sld:CssParameter>
When I should be getting this:
<sld:CssParameter name="stroke-width">
<ogc:PropertyName>ogc_fid</ogc:PropertyName>
</sld:CssParameter>
The button *Custom SLD depending on stroke width (hard coded)* set a custom
SLD that I hard coded and that contains the above correction. This way, you
can see what I am looking for.
My big questions are:
1) Why doesn't the *OpenLayers.Format.SLD().write* method do this correction
automatically?
2) How could I obtain a correct conversion to SLD? Maybe by overloading the
`OpenLayers.Format.SLD().write` method. But how??
Thanks a lot!
João Rodrigues
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/How-to-make-symbolizers-use-attribute-values-in-OpenLayers-Layer-WMS-tp5207043.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list