OpenLayers: comment styliser la couche WFS avec un fichier SLD?

14

J'expérimente avec un service de cartographie Web simple construit sur la pile PostGIS / GeoServer / OpenLayers sur Win 2008 Server.

Je superpose la couche vectorielle de PostGIS en utilisant:

var Index1v = new OpenLayers.Layer.Vector("Index1 v", {
    strategies: [new OpenLayers.Strategy.BBOX()],
        protocol: new OpenLayers.Protocol.WFS({
            version: "1.1.0",
            url: "http://localhost:1979/geoserver/wfs",
            featureType: "bern_poly_s100",
            featureNS: "http://www.ispm.ch",
            srsName: "EPSG:900913"
        })
});

Le calque s'affiche correctement, mais dans un style par défaut [?] De GeoServer.

J'ai un fichier de style SLD avec uDig et il semble être correct car le service WMS l'utilise sans aucun problème. Puis-je également l'utiliser pour styliser la couche WFS?

radek
la source

Réponses:

8

Jetez un coup d'œil à l'exemple de l'OL "Styled Layer Descriptor (SLD) Example" . Ils utilisent SLD pour le style GML, mais devraient également fonctionner pour WFS (une couche vectorielle).

Crédit: forum OL Nabble.com

Vadim
la source
C'est cool - je ne savais pas que tu pouvais faire ça.
Ian Turton
Je ne l'ai jamais utilisé mais je pensais l'avoir vu quelque part auparavant, j'ai donc dû rechercher le bon vieux forum Nabble.com. Permet cependant de continuer à remplir la carte SO GIS.
Vadim
2
Mais d'une certaine manière, vous avez raison, vous êtes toujours responsable de le styliser sur le client, non? Ce n'est pas sur le serveur. Mais vous pouvez styliser avec un SLD prédéfini sur le client.
Vadim
3
Il semble que le lien soit rompu. Pourriez-vous expliquer comment procéder ou fournir un nouveau lien, s'il vous plaît?
Ravi Mehta le
5

La réponse courte est non - WFS vous envoie les données et vous êtes ensuite responsable de les styliser dans le client. OpenLayers utilise un style de carte pour styliser une couche vectorielle. Voir http://docs.openlayers.org/library/feature_styling.html pour plus de détails sur le style d'un calque vectoriel.

Ian Turton
la source
1

Oui, vous pouvez charger le wfs-layer dans des openlayers, puis analyser le fichier sld dans un openlayers-stylemap et l'appliquer au wfs-layer.

Alternativement, vous pouvez attacher le sld au geoserver-wfs-layer comme sld par défaut. Ensuite, chargez la couche wfs dans des couches ouvertes et spécifiez un format d'image (par exemple image / png ou image / jpeg) dans le paramètre de demande. Une fois chargé, stockez-le en tant qu'objet Openlayers.Layer.WMS. Cela rendra la couche en tant que couche raster avec le sld attaché déjà appliqué par le géoserveur.

user9124
la source
0

La définition OGC pour sld dit que c'est pour WMS

Profil OpenGIS® Styled Layer Descriptor (SLD) de la norme de codage OpenGIS® Web Map Service (WMS)

donc !


la source