Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 smile

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 big_smile 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

Yves a écrit:

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

Yves a écrit:

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

 

Pied de page des forums

Powered by FluxBB