SLD - Estilo em função dos atributos

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

SLD - Estilo em função dos atributos

mafonso

Viva,

Estive a ler na referencia de SLD em http://docs.geoserver.org/stable/en/user/styling/sld-reference/index.html, bem como o cookbook http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html mas não encontrei uma solução para a seguinte questão:

Por exemplo, no <PointSimbolizer> é possivel alterar o <Size> em função do valor num atributo, ou numa expressão contendo um atributo? Apenas encontrei exemplos tendo o Size como valor fixo, mesmo aplicando filtros...

Seria óptimo poder fazer algo como:

<Size>
    <PropertyExpr>
        <PropertyName>{atributo}</PropertyName>
        <Expr>%d/10</Expr>
    </PropertyExpr>
</Size>
 
O tamanho seria igual ao valor do atributo a dividir por 10.

Obrigado.

Marco

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal
Reply | Threaded
Open this post in threaded view
|

Re: SLD - Estilo em função dos atributos

Gonçalo Lourenço
Não me lembro de alguma vez ter usado tantas classes quantos os valores armazenados num tema. Em que é que isso poderia ser útil?

2012/1/5 Marco Afonso <[hidden email]>

Viva,

Estive a ler na referencia de SLD em http://docs.geoserver.org/stable/en/user/styling/sld-reference/index.html, bem como o cookbook http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html mas não encontrei uma solução para a seguinte questão:

Por exemplo, no <PointSimbolizer> é possivel alterar o <Size> em função do valor num atributo, ou numa expressão contendo um atributo? Apenas encontrei exemplos tendo o Size como valor fixo, mesmo aplicando filtros...

Seria óptimo poder fazer algo como:

<Size>
    <PropertyExpr>
        <PropertyName>{atributo}</PropertyName>
        <Expr>%d/10</Expr>
    </PropertyExpr>
</Size>
 
O tamanho seria igual ao valor do atributo a dividir por 10.

Obrigado.

Marco

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal




--
Com os meus cumprimentos / Best regards

GONÇALO LOURENÇO


_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal
Reply | Threaded
Open this post in threaded view
|

Re: SLD - Estilo em função dos atributos

mafonso
A utilidade não podia estar mais à vista... Labels. A Label é um componente gráfico cujo valor se pode obter directamente de um atributo. Porque não permitir obter valores para outros componentes gráficos, como por exemplo o tamanho de um ponto, com base no valor de um atributo? Melhor! Poder-se aplicar uma expressão para devolver o valor final.

No dia 6 de Janeiro de 2012 11:28, Gonçalo Lourenço <[hidden email]> escreveu:
Não me lembro de alguma vez ter usado tantas classes quantos os valores armazenados num tema. Em que é que isso poderia ser útil?

2012/1/5 Marco Afonso <[hidden email]>

Viva,

Estive a ler na referencia de SLD em http://docs.geoserver.org/stable/en/user/styling/sld-reference/index.html, bem como o cookbook http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html mas não encontrei uma solução para a seguinte questão:

Por exemplo, no <PointSimbolizer> é possivel alterar o <Size> em função do valor num atributo, ou numa expressão contendo um atributo? Apenas encontrei exemplos tendo o Size como valor fixo, mesmo aplicando filtros...

Seria óptimo poder fazer algo como:

<Size>
    <PropertyExpr>
        <PropertyName>{atributo}</PropertyName>
        <Expr>%d/10</Expr>
    </PropertyExpr>
</Size>
 
O tamanho seria igual ao valor do atributo a dividir por 10.

Obrigado.

Marco

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal




--
Com os meus cumprimentos / Best regards

GONÇALO LOURENÇO


_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal



_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal
Reply | Threaded
Open this post in threaded view
|

Re: SLD - Estilo em função dos atributos

pmgmendes
In reply to this post by mafonso
O elemento Size só existe no contexto de um Graphic que, por sua vez, só é utilizado no PointSymbolizer. Um exemplo com a utilização de expressão matemática de divisão:

  <PointSymbolizer>
<Graphic>
 <Mark>
<WellKnownName>triangle</WellKnownName>
<Fill>
 <CssParameter name="fill">#FFFFFF</CssParameter>
</Fill>
 </Mark>
 <Size>
<ogc:Div>
 <ogc:PropertyName>{atributo}</ogc:PropertyName>
 <ogc:Literal>10</ogc:Literal>
</ogc:Div>
 </Size>
</Graphic>
  </PointSymbolizer>

Para labeling será necessário utilizar um TextSymbolizer. Penso que para atingir o mesmo objetivo do Size, neste symbolizer o seguinte será aplicável:

  <TextSymbolizer>
<Label>
  aminhalabel
</Label>
<Font>
 <CssParameter name="font-family">Arial</CssParameter>
 <CssParameter name="font-size">
<ogc:Divl>
 <ogc:PropertyName>{atributo}</ogc:PropertyName>
 <ogc:Literal>10</ogc:Literal>
</ogc:Div>
 </CssParameter>
 <CssParameter name="font-style">Normal</CssParameter>
 <CssParameter name="font-weight">Normal</CssParameter>
</Font>
...

Nota: não testei este TextSymbolizer.

Ajuda sempre consultar o schema do SLD para perceber como o styling pode ser feito. O GeoServer traz incluidos na distro todos schemas com a cujos os standards estão implementados, entre eles, <geoserver_dir>/schemas/filter/1.1.0/filter.xsd<geoserver_dir>/schemas/sld/StylelayerDescriptor.xsd.

Esper que ajude.

Mendes.

2012/1/5 Marco Afonso <[hidden email]>

Viva,

Estive a ler na referencia de SLD em http://docs.geoserver.org/stable/en/user/styling/sld-reference/index.html, bem como o cookbook http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html mas não encontrei uma solução para a seguinte questão:

Por exemplo, no <PointSimbolizer> é possivel alterar o <Size> em função do valor num atributo, ou numa expressão contendo um atributo? Apenas encontrei exemplos tendo o Size como valor fixo, mesmo aplicando filtros...

Seria óptimo poder fazer algo como:

<Size>
    <PropertyExpr>
        <PropertyName>{atributo}</PropertyName>
        <Expr>%d/10</Expr>
    </PropertyExpr>
</Size>
 
O tamanho seria igual ao valor do atributo a dividir por 10.

Obrigado.

Marco

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal



_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal
Reply | Threaded
Open this post in threaded view
|

Re: SLD - Estilo em função dos atributos

mafonso
Viva,

Realmente faltou-me ler sobre os schemas... no caso das expressões encontrei aqui <geoserver_dir>/schemas/filter/1.1.0/expr.xsd
O pdf da OGC ainda é mais fácil de ler http://portal.opengeospatial.org/files/?artifact_id=8340

Muito obrigado Pedro Mendes!

Cumps,
Marco

No dia 7 de Janeiro de 2012 22:10, Pedro Mendes <[hidden email]> escreveu:
O elemento Size só existe no contexto de um Graphic que, por sua vez, só é utilizado no PointSymbolizer. Um exemplo com a utilização de expressão matemática de divisão:

  <PointSymbolizer>
<Graphic>
 <Mark>
<WellKnownName>triangle</WellKnownName>
<Fill>
 <CssParameter name="fill">#FFFFFF</CssParameter>
</Fill>
 </Mark>
 <Size>
<ogc:Div>
 <ogc:PropertyName>{atributo}</ogc:PropertyName>
 <ogc:Literal>10</ogc:Literal>
</ogc:Div>
 </Size>
</Graphic>
  </PointSymbolizer>

Para labeling será necessário utilizar um TextSymbolizer. Penso que para atingir o mesmo objetivo do Size, neste symbolizer o seguinte será aplicável:

  <TextSymbolizer>
<Label>
  aminhalabel
</Label>
<Font>
 <CssParameter name="font-family">Arial</CssParameter>
 <CssParameter name="font-size">
<ogc:Divl>
 <ogc:PropertyName>{atributo}</ogc:PropertyName>
 <ogc:Literal>10</ogc:Literal>
</ogc:Div>
 </CssParameter>
 <CssParameter name="font-style">Normal</CssParameter>
 <CssParameter name="font-weight">Normal</CssParameter>
</Font>
...

Nota: não testei este TextSymbolizer.

Ajuda sempre consultar o schema do SLD para perceber como o styling pode ser feito. O GeoServer traz incluidos na distro todos schemas com a cujos os standards estão implementados, entre eles, <geoserver_dir>/schemas/filter/1.1.0/filter.xsd<geoserver_dir>/schemas/sld/StylelayerDescriptor.xsd.

Esper que ajude.

Mendes.

2012/1/5 Marco Afonso <[hidden email]>

Viva,

Estive a ler na referencia de SLD em http://docs.geoserver.org/stable/en/user/styling/sld-reference/index.html, bem como o cookbook http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html mas não encontrei uma solução para a seguinte questão:

Por exemplo, no <PointSimbolizer> é possivel alterar o <Size> em função do valor num atributo, ou numa expressão contendo um atributo? Apenas encontrei exemplos tendo o Size como valor fixo, mesmo aplicando filtros...

Seria óptimo poder fazer algo como:

<Size>
    <PropertyExpr>
        <PropertyName>{atributo}</PropertyName>
        <Expr>%d/10</Expr>
    </PropertyExpr>
</Size>
 
O tamanho seria igual ao valor do atributo a dividir por 10.

Obrigado.

Marco

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal



_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal



_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal
Reply | Threaded
Open this post in threaded view
|

Re: SLD - Estilo em função dos atributos

pmgmendes
O pdf da OGC ainda é mais fácil de ler http://portal.opengeospatial.org/files/?artifact_id=8340

Muito boa fonte de informação!

A expressão dentro do font-size resultou como esperado?

Mendes. 

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal
Reply | Threaded
Open this post in threaded view
|

Re: SLD - Estilo em função dos atributos

mafonso
Confirmo, funciona. No meu caso apenas precisei aplicar no Size do PointSymbolizer.

No dia 9 de Janeiro de 2012 00:27, Pedro Mendes <[hidden email]> escreveu:
O pdf da OGC ainda é mais fácil de ler http://portal.opengeospatial.org/files/?artifact_id=8340

Muito boa fonte de informação!

A expressão dentro do font-size resultou como esperado?

Mendes. 

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal



_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal