#1 Tue 14 June 2016 15:54
- Klenkovic
- Participant occasionnel
- Date d'inscription: 17 May 2016
- Messages: 13
Affichage Label dans style SLD
Bonjour, actuellement sur mon application, j'affiche un raster avec deux styles qui lui sont associés : le premier est pour le colorier avec des colorMapEntries et le deuxième j'utilise la fonction Contour pour créer des contours autour de ces couleurs. Tout cela fonctionne bien !
Maintenant j'aimerai pouvoir afficher des labels sur chacun de ces contours. Pouvez vous me guider sur comment faire ? j'imagine que je dois modifier mon fichier de style avec la fonction contour ?
Hors ligne
#2 Tue 14 June 2016 16:54
- Klenkovic
- Participant occasionnel
- Date d'inscription: 17 May 2016
- Messages: 13
Re: Affichage Label dans style SLD
J'ai oublié d'illustrer mon problème !!!
Voici le style qui crée les contours sur mon raster :
Code:
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0"> <sld:NamedLayer> <sld:Name>Default Styler</sld:Name> <sld:UserStyle> <sld:Name>Default Styler</sld:Name> <sld:FeatureTypeStyle> <sld:Name>name</sld:Name> <sld:Transformation> <ogc:Function name="gs:Contour"> <ogc:Function name="parameter"> <ogc:Literal>data</ogc:Literal> </ogc:Function> <ogc:Function name="parameter"> <ogc:Literal>levels</ogc:Literal> <ogc:Literal>0</ogc:Literal> <ogc:Literal>1.0E-13</ogc:Literal> </ogc:Function> </ogc:Function> </sld:Transformation> <sld:Rule> <sld:Name>rule1</sld:Name> <sld:LineSymbolizer> <sld:Stroke/> </sld:LineSymbolizer> <sld:TextSymbolizer> <sld:Label> <ogc:PropertyName>value</ogc:PropertyName> </sld:Label> <sld:Font> <sld:CssParameter name="font-family">Arial</sld:CssParameter> <sld:CssParameter name="font-size">14</sld:CssParameter> <sld:CssParameter name="font-style">normal</sld:CssParameter> <sld:CssParameter name="font-weight">bold</sld:CssParameter> </sld:Font> <sld:LabelPlacement> <sld:PointPlacement/> </sld:LabelPlacement> <sld:Halo> <sld:Radius>4</sld:Radius> <sld:Fill> <sld:CssParameter name="fill">#FFFFFF</sld:CssParameter> <sld:CssParameter name="fill-opacity">0.6</sld:CssParameter> </sld:Fill> </sld:Halo> <sld:Fill> <sld:CssParameter name="fill">#000000</sld:CssParameter> </sld:Fill> </sld:TextSymbolizer> </sld:Rule> </sld:FeatureTypeStyle> </sld:UserStyle> </sld:NamedLayer> </sld:StyledLayerDescriptor>
Ce qui nous donne : http://www.hostingpics.net/viewer.php?id=946479test.jpg
Je n'ai qu'un seule valeur pour la création des contours (1E-13), cette valeur s'affiche sur mon image ainsi que la ligne. J'aimerai concaténer cette valeur avec un string. Par exemple avoir "1E-13 Dose public" sur mon image. Vous avez une piste ?
Hors ligne
#3 Tue 14 June 2016 17:09
Re: Affichage Label dans style SLD
Bonjour,
Quelque chose comme :
Code:
<sld:Label> <ogc:PropertyName>value</ogc:PropertyName> <ogc:Literal>1.0E-13</ogc:Literal> </sld:Label>
Le standard affirme que c'est possible mais ne donne pas d'exemple, juste que "A "mixed" element-content model is used with textual substitution for values." et la doc de GeoServer "Multiple properties can be included in the label, and property values can be manipulated by filter expressions and functions.".
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#4 Tue 14 June 2016 17:09
Re: Affichage Label dans style SLD
Un exemple dans la doc de GeoServer :
Code:
<Label> <ogc:PropertyName>STATE_NAME</ogc:PropertyName> (<ogc:PropertyName>STATE_ABBR</ogc:PropertyName>) </Label>
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Wed 15 June 2016 09:29
- Klenkovic
- Participant occasionnel
- Date d'inscription: 17 May 2016
- Messages: 13
Re: Affichage Label dans style SLD
Super la concaténation fonctionne mais maintenant si j'ai plusieurs levels (1e-12,1e-13,1e-14,..) et que je veuille y associer un label différent pour chaque levels ? Exemple (1e-13 (Public), 1e-14(privé) etc..) ?
Hors ligne
#6 Wed 15 June 2016 10:08
Re: Affichage Label dans style SLD
Peux tu reprendre une colonne existante avec ces informations ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#7 Wed 15 June 2016 10:25
- Klenkovic
- Participant occasionnel
- Date d'inscription: 17 May 2016
- Messages: 13
Re: Affichage Label dans style SLD
Je n'ai pas compris ta requête !! En gros, j'aimerai avoir à côté de mes levels, concaténer une chaîne de caractère différentes pour chaque level.
Par exemple : (c'est un exemple grossier, je sais qu'on ne peut pas le faire ainsi, mais l'idée est là !)
Code:
<ogc:Function name="parameter"> <ogc:Literal>levels</ogc:Literal> <ogc:Literal>0</ogc:Literal> <ogc:Literal>1.0E-15+"Public"</ogc:Literal> <ogc:Literal>1.0E-14+"Privé"</ogc:Literal> <ogc:Literal>1.0E-13+"etc.."</ogc:Literal>
Et ensuite afficher tout ça comme d'habitude
Code:
<sld:Label> <ogc:PropertyName>value</ogc:PropertyName> </sld:Label>
As-tu une idée de comment faire ? je lis la doc depuis ce matin et je n'ai pas encore trouvé de solution
Hors ligne
#8 Wed 15 June 2016 11:10
Re: Affichage Label dans style SLD
Laisse tomber ma proposition, elle ne peut pas fonctionner dans le cas d'un raster.
Dans ton SLD tu as un élément RULE qui permet de faire des filtres. Tu peux donc filtrer les géométries et les libeller différement. Grosso modo :
Code:
<sld:Rule> <sld:Name>rule1</sld:Name> [Filtre value = 0] <sld:TextSymbolizer> <sld:Label> <ogc:PropertyName>value</ogc:PropertyName> </sld:Label> [..] </sld:TextSymbolizer> </sld:Rule> <sld:Rule> <sld:Name>rule2</sld:Name> [Filtre value > 0 et value < 1.0E-15] <sld:TextSymbolizer> <sld:Label> <ogc:PropertyName>value</ogc:PropertyName> <ogc:Literal>Public</ogc:Literal> </sld:Label> [..] </sld:TextSymbolizer> </sld:Rule> <sld:Rule> <sld:Name>rule3</sld:Name> [Filtre value > 1.0E-15 et value < 1.0E-14] <sld:TextSymbolizer> <sld:Label> <ogc:PropertyName>value</ogc:PropertyName> <ogc:Literal>Privée</ogc:Literal> </sld:Label> [..] </sld:TextSymbolizer> </sld:Rule>
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#9 Wed 15 June 2016 12:01
- Klenkovic
- Participant occasionnel
- Date d'inscription: 17 May 2016
- Messages: 13
Re: Affichage Label dans style SLD
Super Yves c'est ce que je cherchais !! Merci !!
Et pour finir, mes Rules sont super grandes puisque je redéfinis le style du label et du trait, c'est possible de définir un style pour toutes les rules ? Ou alors avoir plusieurs filters dans une rule ?
Dernière modification par Klenkovic (Wed 15 June 2016 12:06)
Hors ligne
#10 Wed 15 June 2016 13:28
Re: Affichage Label dans style SLD
Non, ce n'est pas possible. Une rule est un regroupe de feature dont on veut spécifier le rendu et les labels. Tu peux faire des filtres plus complexes mais toujours avec un seul rendu / Label.
Le XML est assez verbeux, mais il n'y a pas moyen d'y échapper.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#11 Wed 15 June 2016 14:02
- Klenkovic
- Participant occasionnel
- Date d'inscription: 17 May 2016
- Messages: 13
Re: Affichage Label dans style SLD
Oké je vois ! Merci t'es le meilleur Yves have a good day
Hors ligne
#12 Mon 16 November 2020 12:56
- MagBar
- Participant assidu
- Date d'inscription: 27 Jun 2012
- Messages: 203
Re: Affichage Label dans style SLD
Un exemple dans la doc de GeoServer :
Code:
<Label> <ogc:PropertyName>STATE_NAME</ogc:PropertyName> (<ogc:PropertyName>STATE_ABBR</ogc:PropertyName>) </Label>Y.
Bonjour,
je me permets de faire remonter le sujet. J'essaies de tester des SLD de Géoserver sur QGIS, et j'ai un gros soucis sur les étiquettes "complexes". Dès qu'il y a plus d'un attribut les format GeoServer ne fonctionne pas sur QGIS. Il faut passer par une concatenation de valeur à l'interieur de la balise PropertyName pour que celà fonctionne. Mais du coup, je modifies la SLD qui ne fonctionne plus sur GeoServer et mes tests ne servent à rien..
Auriez vous une idée ? Un conseil ?
Hors ligne
#13 Mon 16 November 2020 12:56
- MagBar
- Participant assidu
- Date d'inscription: 27 Jun 2012
- Messages: 203
Re: Affichage Label dans style SLD
Un exemple dans la doc de GeoServer :
Code:
<Label> <ogc:PropertyName>STATE_NAME</ogc:PropertyName> (<ogc:PropertyName>STATE_ABBR</ogc:PropertyName>) </Label>Y.
Bonjour,
je me permets de faire remonter le sujet. J'essaies de tester des SLD de Géoserver sur QGIS, et j'ai un gros soucis sur les étiquettes "complexes". Dès qu'il y a plus d'un attribut les format GeoServer ne fonctionne pas sur QGIS. Il faut passer par une concatenation de valeur à l'interieur de la balise PropertyName pour que celà fonctionne. Mais du coup, je modifies la SLD qui ne fonctionne plus sur GeoServer et mes tests ne servent à rien..
Auriez vous une idée ? Un conseil ?
Hors ligne