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 Fri 19 October 2012 15:40

yo_haha
Participant occasionnel
Lieu: Martil
Date d'inscription: 28 Sep 2008
Messages: 47

[Geoserver][OpenLayers] Définition d'un style de WFS

Bonjour,

J'ai une couche de points que j'ai publiée sur Geoserver. J'utilise cette couche en WFS dans OpenLayers en utilisant l'objet Vector avec le protocole WFS. Je voudrais afficher les points avec un style différent du style par défaut.
J'ai donc ajouté l'attribut styleMap de l'objet Vector contenant le WFS et je lui ai affecté un StyleMap.
Cela ne change rien à l'affichage de ma couche, qui est rendue avec le symbole par défaut d'OpenLayers pour les points. Sauriez-vous pourquoi ?

Code:

var wfs = new OpenLayers.Layer.Vector("monWFS", {
    strategies: [new OpenLayers.Strategy.BBOX()],
        protocol: new OpenLayers.Protocol.WFS({
            version: "1.1.0",
            url: "http://ip/geoserver/wfs",
            featureType: "monFeature",
            featureNS: "http://145.65.218:8080/monEspace",
            srsName: "EPSG:900913"
        }),
        stylemap: new OpenLayers.StyleMap({
            "default": new OpenLayers.Style(null, {
                rules: [
                    new OpenLayers.Rule({
                        symbolizer: {
                            "Point": {
                                externalGraphic: 'chemin_vers/logo.jpg',
                                graphicWidth: 80,
                                graphicHeight: 35
                            }
                        }
                    })
                ]
            })
        })
    });

Cordialement.

Hors ligne

 

#2 Fri 19 October 2012 16:37

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

Bonjour yo_haha,

je te conseils d'aller plutôt dans geoserver et de créer un nouveau style et de selectionner de style pour ta couche.

Maintenant décrit ton style et je te donne le code de cela dans geoserver.


Chef de projet SIG

Hors ligne

 

#3 Fri 19 October 2012 16:51

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

ok , j'ai vu la description de ton style.

Tu vas dans geoserver
tu chercher on on ajoute un nouveau style

tu met ce code dans la partie lié au code

ensuite  tu dans le répertoire dans lequel tu as installé geosever

tu vas trouver la , un dossier style
et tu y mettra ton image dans ce dossier.



Code:

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
  <NamedLayer>
    <Name>redflag</Name>
    <UserStyle>
      <Name>burg</Name>
      <Title>A small red flag</Title>
      <Abstract>A sample of how to use an SVG based symbolizer</Abstract>

      <FeatureTypeStyle>
        <Rule>
          <Title>Red flag</Title>
          <PointSymbolizer>
            <Graphic>
              <ExternalGraphic>
                <OnlineResource xlink:type="simple" xlink:href="logo.jpg" />
                <Format>image/png</Format>
              </ExternalGraphic>
              <Size>
                <ogc:Literal>15</ogc:Literal>
              </Size>
            </Graphic>
          </PointSymbolizer>
        </Rule>

      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

Chef de projet SIG

Hors ligne

 

#4 Fri 19 October 2012 16:59

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

J'oubliai,

tu dois ensuite modifier de style de ta couche dans geoserver en sélectionnant le style que tu viens de créer

CA devrait marcher; c'est assez simple


Chef de projet SIG

Hors ligne

 

#5 Mon 22 October 2012 09:49

yo_haha
Participant occasionnel
Lieu: Martil
Date d'inscription: 28 Sep 2008
Messages: 47

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

Bonjour Ceva,
Merci pour l'explication. En fait, j'ai déjà créé un style SLD dans Geoserver mais le problème est que le style est affecté aux couches WMS non aux WFS : quand je récupère ma couche en WMS le style est bien le bon. Quand je la récupère en WFS, le style n'est pas pris en compte.

Hors ligne

 

#6 Mon 22 October 2012 13:09

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

Bonjour,

effectivement c'est normal ce comportement.

les couches WFS sont du type vecteur, tu ne peut pas les représenter avec les images.
si tu veux utiliser ce type de style tu dois utiliser une couches wms.


Chef de projet SIG

Hors ligne

 

#7 Mon 22 October 2012 13:31

yo_haha
Participant occasionnel
Lieu: Martil
Date d'inscription: 28 Sep 2008
Messages: 47

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

Mais je veux donner un style à mon WFS avec OpenLayers. Le problème n'est pas l'image, car j'ai essayé avec un style sans image et cela n'a pas marché.

Hors ligne

 

#8 Tue 23 October 2012 10:53

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

Bonjour

Voila un exemple dune couche wfs avec un style et j'espère que cala t'aidera

Code:

myStyleChemins = new OpenLayers.Style();
                myStyleChemins.addRules([
                           new OpenLayers.Rule({symbolizer: this.symbolizersChemins2})
                           
                        ]);
                                                          
                        cheminFeral = new OpenLayers.Layer.WFS(
                        "Cities",
                        "http://<?php echo $ip; ?>:8080/geoserver/wfs",
                        {typename: 'Chemin_de_Fer_polyline'},
                        {
    
                        typename: 'Chemin_de_Fer_polyline',
                            featureNS: 'http://www.openplans.org/topp',
                            extractAttributes: true,
                            styleMap: new OpenLayers.StyleMap({
                            "default": myStyleChemins                                    
                        })                                                                
                        }
                );






symbolizersChemins= {                            
                            "Line": {
                                strokeWidth: 4,
                            strokeOpacity: 1,
                            strokeColor: "#1E134d"
                            }                            
                        };

Chef de projet SIG

Hors ligne

 

#9 Tue 23 October 2012 11:22

yo_haha
Participant occasionnel
Lieu: Martil
Date d'inscription: 28 Sep 2008
Messages: 47

Re: [Geoserver][OpenLayers] Définition d'un style de WFS

Jusqtement, je n'utilise pas new OpenLayers.Layer.WFS. Au lieu j'utilise new OpenLayers.Layer.Vector avec comme protocole WFS. Est-ce que cela a un impact sur la définition de la symbologie ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB