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

Printemps des cartes 2024

#1 Tue 10 November 2015 15:46

MaelReboux
Participant actif
Lieu: Roazhon / Rennnes
Date d'inscription: 24 Aug 2010
Messages: 72

[geoserver][sld] style pour des courbes de niveau

Bonjour à tous,

Je cherche à faire un style relativement simple pour un GeoServer 2.3.2 : des courbes de niveaux bistre avec l'altitude comme étiquette.

Les problèmes à prendre dans l'ordre :
- mettre une couleur à la fonte
- l'étiquette doit être orientée sur la ligne


Code:

<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor
  version="1.0.0"
  xmlns:sld="http://www.opengis.net/sld"
  xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:gml="http://www.opengis.net/gml">
  <sld:NamedLayer>
    <sld:Name>ref_alti:mnt_courbe_niveau</sld:Name>
    <sld:UserStyle>
      <sld:FeatureTypeStyle>
      
        <sld:Rule>
          <sld:Name>10m</sld:Name>
          <sld:Title>Isolignes 10 m</sld:Title>
          <!-- filtre sur les isolignes 10 m -->
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>m_dix</ogc:PropertyName>
              <ogc:Literal>1</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <!-- étiquettes -->
          <sld:TextSymbolizer>
            <sld:Label>
              <ogc:PropertyName>altitude</ogc:PropertyName>
            </sld:Label>
            <!-- provoque une erreur de validation -->
            <!--<sld:Fill>
                <sld:CssParameter name="fill">#dda840</sld:CssParameter>
            </sld:Fill>-->
            <sld:Font>
              <sld:CssParameter name="font-family">Verdana</sld:CssParameter>
              <sld:CssParameter name="font-size">12</sld:CssParameter>
              <sld:CssParameter name="font-weight">bold</sld:CssParameter>
              <sld:CssParameter name="font-color">#dda840</sld:CssParameter> <!-- n'a pas d'incidence -->
            </sld:Font>
            <sld:Halo>
              <sld:Radius>2</sld:Radius>
            </sld:Halo>
            <!-- provoque une erreur de validation : réclame un vendor option -->
            <!--<sld:LabelPlacement>
              <sld:LinePlacement>
                <sld:PerpendicularOffset>5</sld:PerpendicularOffset>
              </sld:LinePlacement>
            </sld:LabelPlacement>-->
          </sld:TextSymbolizer>
          <!-- la ligne bistre épaisse -->
          <sld:LineSymbolizer>
            <sld:Stroke>
              <sld:CssParameter name="stroke">#dda840</sld:CssParameter>
              <sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
              <sld:CssParameter name="stroke-width">1.6</sld:CssParameter>
            </sld:Stroke>
          </sld:LineSymbolizer>
        </sld:Rule>
        
        <sld:Rule>
          <sld:Name>2m</sld:Name>
          <sld:Title>Isolignes 2 m</sld:Title>
          <!-- filtre sur les isolignes 2 m -->
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>m_deux</ogc:PropertyName>
              <ogc:Literal>1</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <sld:LineSymbolizer>
            <sld:Stroke>
              <sld:CssParameter name="stroke">#dda840</sld:CssParameter>
              <sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
              <sld:CssParameter name="stroke-width">0.3</sld:CssParameter>
            </sld:Stroke>
          </sld:LineSymbolizer>
        </sld:Rule>
        
      </sld:FeatureTypeStyle>
    </sld:UserStyle>
  </sld:NamedLayer>
</sld:StyledLayerDescriptor>

Les rares échanges sur les listes ou les forums ne m'ont apporté aucune solution.
J'espère qu'il y a ici la ressource que je recherche. Merci d'avance.


Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh

Hors ligne

 

#2 Thu 12 November 2015 09:06

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

Re: [geoserver][sld] style pour des courbes de niveau

pour que l'étiquette suive la ligne, il faut mettre :

Code:

<VendorOption name="followLine">true</VendorOption>

l'exemple sur cette page : http://docs.geoserver.org/2.3.2/user/st … owing-line

pour la couleur de l'étiquette, il faut mettre :

Code:

<Fill>
           <CssParameter name="fill">#990099</CssParameter>
         </Fill>

exemple sur cette page : http://docs.geoserver.org/latest/en/use … lizer.html
(c'est pour Geoserver 2.9, à tester si ça marche avec GS 2.3).

Nico

Hors ligne

 

#3 Mon 07 December 2015 16:25

MaelReboux
Participant actif
Lieu: Roazhon / Rennnes
Date d'inscription: 24 Aug 2010
Messages: 72

Re: [geoserver][sld] style pour des courbes de niveau

Bonjour

Désolé pour le temps de réaction.

Pour la couleur de l'étiquette, on est d'accord que l'endroit où il faut mettre cette instruction est (en XPath) :
/sld:StyledLayerDescriptor/sld:NamedLayer/sld:UserStyle/sld:FeatureTypeStyle/sld:Rule/sld:TextSymbolizer/sld:Fill   ?

Autrement dit : une instruction / un paramètre sld:Fill dans un sld:TextSymbolizer  ?

Parce que c'est déjà ce que j'ai dans mon code (à part que j'ai un espace de nommage "sld", cf le code plus haut) et que ça provoque une erreur de validation. En GeoServer 2.3.2 et GeoServer 2.7.


Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh

Hors ligne

 

#4 Tue 08 December 2015 09:20

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

Re: [geoserver][sld] style pour des courbes de niveau

Dans la balise <Fill>, il y a encore une balise <CssParameter>, mais avec une proritété name (je ne sais pas comment on écrit la propriété avec la syntaxe XPath).

Nico

Hors ligne

 

Pied de page des forums

Powered by FluxBB