OpenLayers: como estilizar a camada WFS com arquivo SLD?

14

Estou experimentando um serviço simples de mapeamento da Web criado na pilha PostGIS / GeoServer / OpenLayers no Win 2008 Server.

Sobreponho a camada vetorial do PostGIS usando:

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

A camada é exibida corretamente, mas no estilo padrão [?] Padrão do GeoServer.

Eu tenho um arquivo de estilo SLD compilado com o uDig e parece estar correto, pois o serviço WMS está usando-o sem problemas. Posso usá-lo para estilizar a camada WFS também?

radek
fonte

Respostas:

8

Dê uma olhada no exemplo "Exemplo de descritor de camada com estilo (SLD)" da OL . Eles usam o SLD para estilizar o GML, mas também devem funcionar para o WFS (uma camada vetorial).

Crédito: Fórum Nabble.com da OL

Vadim
fonte
Isso é legal - eu não sabia que você poderia fazer isso.
Ian Turton
Eu nunca o usei, mas achei que já tinha visto em algum lugar antes, então tive que pesquisar o bom e velho fórum confiável do Nabble.com. No entanto, vamos continuar preenchendo a placa SO GIS também.
Vadim
2
Mas, de certa forma, você está certo e ainda é responsável por estilizá-lo no cliente, certo? Não está no servidor. Mas você pode estilizar com um SLD pré-fabricado no cliente.
Vadim
3
Parece que o link está quebrado. Você poderia explicar como fazer isso ou fornecer um novo link, por favor?
Ravi Mehta
5

Resposta curta é não - o WFS envia os dados e você é responsável por denominá-los no cliente. O OpenLayers usa um mapa de estilo para estilizar uma camada vetorial. Consulte http://docs.openlayers.org/library/feature_styling.html para obter detalhes de como estilizar uma camada vetorial.

Ian Turton
fonte
1

Sim, você pode carregar a camada wfs nos openlayers, analisar o arquivo sld em um mapa de estilo dos openlayers e aplicá-lo à camada wfs.

Como alternativa, você pode anexar o sld ao geoserver-wfs-layer como o sld padrão. Em seguida, carregue a camada wfs nos openlayers e especifique um formato de imagem (por exemplo, image / png ou image / jpeg) no parâmetro request. Depois de carregado, armazene-o como um objeto Openlayers.Layer.WMS. Isso renderizará a camada como uma camada rasterizada com o sld anexado já aplicado pelo geoserver.

user9124
fonte
0

A definição OGC para sld diz que é para WMS

O perfil OpenGIS® Styled Layer Descriptor (SLD) do padrão de codificação OpenGIS® Web Map Service (WMS)

assim !


fonte