Como posso usar o WFS do Geoserver com OpenLayers 3?

8

Eu tentei com diferentes configurações e formatos, mas sem sucesso.

Com o firebug, posso ver que os dados do json estão carregados, mas nada aparece no mapa.

Alguém já experimentou com geoserver e wfs em openlayers 3?

var layer_ojd_vector = new ol.layer.Vector({
 source: new ol.source.Vector({
  parser: new ol.parser.GeoJSON(),
  url: http://SERVER:8080/geoserver/NS/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=NS:LAYER&maxFeatures=50&outputFormat=json
 }),
 style: new ol.style.Style({rules: [
  new ol.style.Rule({
   filter: 'geometryType("point")',
   symbolizers: [
     new ol.style.Shape({
       fillColor: '#013',
       size: 40
     })
   ]
 })
]})  
});
Trond Thorbjørnsen
fonte

Respostas:

3

Já vi isso respondido bastante aqui.

Você deve executar o arquivo HTML de um servidor da web e acessar por:

SERVIDOR: 8080 / geoserver / index.html

ou no entanto o seu está configurado.

Você não pode simplesmente clicar duas vezes no arquivo HTML e visualizar a camada WFS.

ianbroad
fonte
O arquivo com este javascript é acessado através de um servidor web.
Trond Thorbjørnsen
ESTÁ BEM! Agora eu entendo: não consigo acessar os dados wfs de outro servidor da web, tenho que ter o arquivo html no servidor da web geoserver.
Trond Thorbjørnsen
4
@ GISer "Eu já vi isso respondido bastante aqui." Mesmo? Este é o único post que eu vi que tem como alvo específico o OL3. Não se importaria de ver uma documentação melhor sobre isso, pois a documentação do OL3 ainda é um trabalho em andamento.
Kyle
1
Isto não faz sentido. Você está dizendo que, se você tiver dados remotos do GeoJSON, eles precisam ser executados no mesmo servidor que serve o mapa? Se você vir alguns exemplos de OpenLayers em seu site, os dados espaciais não precisarão residir no mesmo servidor que o servidor de mapas que exibe os dados.
user3657279
3

Eu concordo com Kyle. Mesmo um ano depois, levei um tempo para encontrar bons exemplos com explicações que podem ser facilmente reproduzidas.

Eu gosto dos exemplos do 'the book of openlayers 3'. Infelizmente, não tenho acesso ao livro em si, mas acredito que seja bem escrito, a julgar pelos exemplos.

Este exemplo é para o ol 3.4

http://acanimal.github.io/thebookofopenlayers3/chapter03_07_query_wfs.html

Eu tive alguns problemas para replicar o exemplo principal do ol 3.5 vector-wfs da página de exemplos de openlayers. Esses problemas provavelmente já foram corrigidos agora.

http://openlayers.org/en/master/examples/vector-wfs.html

Criei três jsfiddle para demonstrar as chamadas ol 3.5.0 via AJAX para ol.format.GeoJSON (JSON e JSONP) e ol.format.WFS.

WFS (o acesso ao CORS deve ser ativado no servidor da web, por exemplo , para Apache Tomcat )

http://jsfiddle.net/goldrydigital/9d3jzpna/

JSON (o acesso ao CORS deve ser ativado no servidor da web, por exemplo , para Apache Tomcat )

http://jsfiddle.net/goldrydigital/ucspgvx0/

JSONP (o JSONP precisa ser ativado no Geoserver )

http://jsfiddle.net/goldrydigital/08zzh9n9/

Dennis Bauszus
fonte
Bem, a resposta veio dois anos após a resposta aceita, e a resposta aceita estava correta na medida em que foi. Mas isso é muito mais útil.
Auspex
0

Eu acho que o que você precisa é o seguinte:
Referência da API de configuração REST
Com o REST você pode chamar dados entre servidores (ou, por exemplo, Apache na porta 80 e geoserver na porta 8080, se for o mesmo servidor).

António Cabral
fonte