OpenLayers:如何使用SLD文件设置WFS图层的样式?


14

我正在尝试在Win 2008 Server的PostGIS / GeoServer / OpenLayers堆栈上构建一个简单的Web映射服务。

我使用以下方法覆盖了PostGIS的矢量层:

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"
        })
});

图层正确显示,但显示为GeoServer默认的默认[?]样式。

我已经使用uDig构建了SLD样式的文件,由于WMS服务正在使用它而没有任何问题,因此这似乎是正确的。是否可以使用它来设置WFS图层的样式?

Answers:


8

看一下OL的“样式化图层描述符(SLD)示例”示例。他们使用SLD来设置GML样式,但也应该适用于WFS(矢量层)。

图片来源:OL的Nabble.com论坛


太酷了-我不知道您能做到。
伊恩·特顿

我从未使用过它,但我认为我以前曾经在某个地方看到过它,因此不得不研究旧的,可靠的Nabble.com论坛。但是,让我们也继续填写SO GIS板。
Vadim

2
但是以某种方式您说对了,您仍然有责任在客户端上对它进行样式设计,对吗?它不在服务器上。但是您可以在客户端上使用预制的SLD进行样式设置。
Vadim

3
似乎链接已断开。您能否说明如何执行此操作,或者提供一个新链接?
拉维·梅塔


1

是的,您可以将wfs层加载到openlayers中,然后将sld文件解析为openlayers-stylemap,然后将其应用于wfs层。

或者,您可以将sld作为默认sld附加到geoserver-wfs-layer上。然后将wfs层加载到openlayers中,并在request参数中指定图像格式(例如image / png或image / jpeg)。加载后,将其存储为Openlayers.Layer.WMS对象。这会将图层渲染为带有Geoserver已应用的附加sld的栅格图层。


0

sld的OGC定义说是针对WMS的

OpenGIS®Web地图服务(WMS)编码标准的OpenGIS®样式层描述符(SLD)配置文件

如此!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.