Eksperymentuję z prostą usługą mapowania sieci opartą na stosie PostGIS / GeoServer / OpenLayers na Win 2008 Server.
Nakładam warstwę wektorową z PostGIS przy użyciu:
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"
})
});
Warstwa wyświetla się poprawnie, ale w prostym, domyślnym stylu [?] Z GeoServer.
Mam kompilację plików w stylu SLD z uDig i wydaje się być poprawna, ponieważ usługa WMS korzysta z niej bez żadnych problemów. Czy mogę go również użyć do stylizacji warstwy WFS?
openlayers-2
geoserver
wfs
sld
radek
źródło
źródło
Krótka odpowiedź brzmi „nie” - WFS wysyła dane, a następnie jesteś odpowiedzialny za stylizację ich w kliencie. OpenLayers używa mapy stylów do stylizowania warstwy wektorowej. Zobacz http://docs.openlayers.org/library/feature_styling.html, aby uzyskać szczegółowe informacje na temat stylu warstwy wektorowej.
źródło
Tak, możesz załadować warstwę wfs do openlayers, a następnie parsować plik sld do mapy stylów openlayers i zastosować go do warstwy wfs.
Alternatywnie możesz dołączyć sld do warstwy geoserver-wfs jako domyślny sld. Następnie załaduj warstwę wfs do openlayers i określ format obrazu (np. Image / png lub image / jpeg) w parametrze żądania. Po załadowaniu zapisz go jako obiekt Openlayers.Layer.WMS. Spowoduje to renderowanie warstwy jako warstwy rastrowej z dołączonym sld już zastosowanym przez geoserver.
źródło
Definicja OGC dla sld mówi, że dotyczy WMS
Profil OpenGIS® Styled Descriptor warstw (SLD) standardu kodowania OpenGIS® Web Map Service (WMS)
więc !
źródło