Mais

Geoserver SLD: Substituição de Variável Dinâmica


Estou enfrentando um problema com o Geoserver e seu mecanismo de estilo que não tenho certeza se é possível resolver ou não. Mas primeiro, um contexto rápido ...

Contexto

Queremos usar Geoserver e OpenLayers para exibir um mapa em nosso aplicativo. Neste aplicativo, poderemos escolher um estado brasileiro em um campo selecionado para ver todas as cidades deste estado. Além disso, considere que cada cidade será preenchida com uma cor específica.

As cores serão enviadas por meio de uma solicitação WMS em vez de computadas ou definidas dentro do SLD, por exemplo, usando dados de nosso conjunto de dados de camada. Esse é o problema ... Mais uma coisa a levar em conta é que alguns estados do Brasil têm mais de 400 cidades.

Resolvendo o problema?

A primeira abordagem que tentamos consiste em criar um Regra para cada cidade. No entanto, acabou por ser inviável porque temos mais de 300 cidades a serem exibidas em alguns estados. Imagine o tamanho desse arquivo SLD!

A segunda abordagem que pensamos era obter dinamicamente cada cor do QueryString. Por exemplo, ao exibir a cidade chamada "Salvador", deve-se pesquisar o QueryString para o parâmetro salvador da cor. Mas não sabemos como fazer. Na verdade, parece impossível. Estou certo?

Dê uma olhada no SLD abaixo.

 Regra da cidade Cidade    #  salvador 234545

O que gostaríamos de fazer é, em vez de definir o literal salvador, dentro de env função, gostaríamos de usar uma propriedade como Nome da Cidade que vem de nosso conjunto de dados de camada. Algo assim…

 Regra da cidade Cidade    #  Nome da Cidade-cor  234545

Em vez de

 Nome da Cidade-cor 

Você precisa usar a função Concatenar

 Nome da Cidade -cor


Assista o vídeo: GeoServer. Styling. SLD CSS. (Outubro 2021).