Suite

Geoserver SLD : Substitution dynamique de variables


Je suis confronté à un problème avec Geoserver et son mécanisme de style que je ne sais pas s'il est possible de le résoudre ou non. Mais d'abord, un rapide contexte...

Le contexte

Nous voulons utiliser Geoserver et OpenLayers pour afficher une carte dans notre application. Dans cette application, nous pourrons choisir un état brésilien dans un champ sélectionné afin de voir chaque ville de cet état. Aussi, considérez que chaque ville sera remplie d'une couleur spécifique.

Les couleurs seront envoyées via une demande WMS au lieu d'être calculées ou définies dans le SLD, par exemple, en utilisant les données de notre jeu de données de couche. C'est le problème… Une autre chose à prendre en compte est que certains États du Brésil ont plus de 400 villes.

Résoudre le problème ?

La première approche que nous avons essayée consiste à créer un Régner pour chaque ville. Cependant, cela s'est avéré irréalisable car nous avons plus de 300 villes à afficher dans certains États. Imaginez la taille de ce fichier SLD !

La deuxième approche à laquelle nous avons pensé était d'obtenir dynamiquement chaque couleur à partir du QueryString. Par exemple, lors de l'affichage de la ville nommée "Salvador", il doit rechercher le QueryString pour le paramètre couleur-salvador. Mais nous ne savons pas comment faire. En fait, cela semble impossible. Ai-je raison?

Jetez un œil au SLD ci-dessous.

 Règle de la ville Ville    #  salvador 234545

Ce que nous voudrions faire, c'est au lieu de définir le sens littéral salvador, à l'intérieur de env fonction, nous aimerions utiliser une propriété comme Nom de Ville qui vient de notre jeu de données de couche. Quelque chose comme ça…

 Règle de la ville Ville    #  Nom de Ville-Couleur  234545

À la place de

 Nom de Ville-Couleur 

Vous devez utiliser la fonction Concaténer

 Nom de Ville -Couleur


Voir la vidéo: GeoServer. Styling. SLD CSS. (Octobre 2021).