Ich experimentiere mit einem einfachen Web-Mapping-Dienst, der auf dem PostGIS / GeoServer / OpenLayers-Stack unter Win 2008 Server basiert.
Ich überlagere die Vektorebene von PostGIS mit:
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"
})
});
Die Ebene wird korrekt angezeigt, jedoch im einfachen Standardstil [?] Von GeoServer.
Ich habe eine SLD-Datei mit uDig erstellt und es scheint korrekt zu sein, da der WMS-Dienst sie ohne Probleme verwendet. Kann ich damit auch WFS-Layer stylen?
openlayers-2
geoserver
wfs
sld
radek
quelle
quelle
Die kurze Antwort lautet "Nein". WFS sendet Ihnen die Daten und Sie sind dann dafür verantwortlich, sie im Client zu formatieren. OpenLayers verwendet eine Stilkarte, um eine Vektorebene zu gestalten. Weitere Informationen zum Stylen einer Vektorebene finden Sie unter http://docs.openlayers.org/library/feature_styling.html .
quelle
Ja, Sie können die wfs-Ebene in OpenLayer laden, dann die sld-Datei in eine OpenLayer-Stylemap analysieren und auf die wfs-Ebene anwenden.
Alternativ können Sie die sld als Standard-sld an die geoserver-wfs-Ebene anhängen. Laden Sie dann die wfs-Ebene in OpenLayer und geben Sie im request-Parameter ein Bildformat (zB image / png oder image / jpeg) an. Einmal geladen, speichern Sie es als Openlayers.Layer.WMS-Objekt. Dadurch wird der Layer als Raster-Layer gerendert, wobei die angehängte sld bereits von Geoserver angewendet wurde.
quelle
Die OGC-Definition für sld besagt, dass dies für WMS gilt
Das OpenGIS® Styled Layer Descriptor (SLD) -Profil des OpenGIS® WMS-Codierungsstandards (Web Map Service)
so !
quelle