#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