A substituição de variáveis no SLD é uma funcionalidade do GeoServer (adicionada na versão 2.0.2) que permite passar valores nas requisições WMS para estilos. Isso permite definir valores dinamicamente, como cores, fontes, tamanhos e limites de filtro.
As variáveis são especificadas nas requisições GetMap do WMS usando o parâmetro env seguido por uma lista de nomes e valores separados por ponto e vírgula conforme demonstrado abaixo:
...&env=name1:value1;name2=value2&...
Em um SLD, os valores das variáveis são acessados usando a função env que recupera um valor de variável especificado substituindo na solicitação atual:
<ogc:Function name="env"> <ogc:Literal>size</ogc:Literal> </ogc:Function>
Um valor padrão pode ser fornecido, e será usado se a variável não for especificada na solicitação:
<ogc:Function name="env"> <ogc:Literal>size</ogc:Literal> <ogc:Literal>6</ogc:Literal> </ogc:Function>
A função env pode ser usada em um SLD em qualquer lugar onde uma expressão OGC é permitida. Por exemplo, ele pode ser usado em elemento CSSParameter, em elementos de tamanho e deslocamento e até em expressões de filtros nas regra. Também é aceito em alguns lugares onde expressões completas não são permitidas, como no elemento Mark/WellKnownName.
O seguinte elemento Symbolizer foi parametrizado em três locais, com os valores padrão fornecidos em cada caso, veja:
<PointSymbolizer> <Graphic> <Mark> <WellKnownName><ogc:Function name="env"> <ogc:Literal>name</ogc:Literal> <ogc:Literal>square</ogc:Literal> </ogc:Function> </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>
Quando nenhuma variável é fornecida na requisição WMS, o SLD usa os valores padrão e renderiza o conjunto de dados, conforme mostrado abaixo na camada sf:bugsites:
Se a solicitação for alterada para especificar os seguintes valores de variáveis:
&env=color:00FF00;name:triangle;size:12
O resultado então será:
Agora basta você aplicar nos seus estilos SLD.
Fonte: GeoServer Documentation