Alguns anos atrás, Mike Pumphrey ministrou uma palestra no FOSS4G intitulada “Styled Layer Descriptor, or How I Learned To Stop Worrying and Love XML”. Nesta palestra ele descreveu algumas das características mais interessantes da sintaxe SLD para se utilizar ao criar estilos de mapas no GeoServer. Veja:

sld_file

Isso na verdade é um conjunto de marcações XML apenas para criar pontos vermelhos com contorno preto. Será que não podemos fazer melhor? Na verdade nós podemos.

Houveram alguns esforços ao longo dos anos para fazer melhorias na forma como criar estilo no GeoServer. Uma dessas tentativas notável foi adaptar o uso de CSS para utilizar na definição de estilo do mapa. À primeira vista, este parece ser um ajuste perfeito: mapas baseados na web podem usar estilos baseados na web! E, na verdade, a extensão de estilo CSS para GeoServer é uma ferramenta poderosa para a conversão de marcação CSS para SLD.

Embora existam problemas, pois o CSS usa um modelo de pintura diferente do SLD, por isso não é possível converter livremente um estilo CSS para SLD e vice-versa. Ao gerar estilo no formato SLD normalmente se têm muito mais regras do que no CSS, de modo que um conversor inverso seria necessário para identificar os despedimentos e eliminá-los. Devido a engine de renderização ter sido construída sobre o modelo de SLD, gera este problema, e reescrever a engine não era viável.

Então a questão tornou-se: existe uma maneira de simplificar a sintaxe, e permanecer fiel ao modelo de renderização existente?

Foi então que a equipe do OpenGeo Suite veio com a seguinte ideia: por que não adaptar uma linguagem de marcação existente? Foi então que pensaram no YAML, linguagem na qual já estavam familiarizados. Esta ideia foi analisada por um tempo, e meses mais tarde, surgiu como um componente do OpenGeo Suíte Compositor: YSLD.

Lembra do exemplo de SLD acima? Agora veja como ficou o YSLD:

ysld_file

Muito melhor, não é? Mais fácil de ler, mais compacto e com muito menos complexidade, isso é certo.

Há outras vantagens do YSLD. Ao contrário do XML, YSLD não possui esquema, de modo que a ordenação dos componentes não é importante. E, pela primeira vez, você pode definir uma marcação que se repete em todo o documento com uma variável, para que possa reutilizá-la em todo documento.

O YSLD é totalmente intercambiável com o SLD, pois está de acordo com a engine do SLD ​​e em conformidade com os padrões OGC.

YSLDexample2

A versão do YSLD está disponível no OpenGeo Suite desde a sua versão 4.5 e estará disponível no GeoServer a partir da versão 2.9.

Fonte: Boundless