#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