¿Cómo puedo usar WFS de Geoserver con OpenLayers 3?

8

He intentado con diferentes configuraciones y formatos, pero no he tenido éxito.

Con firebug, puedo ver que los datos json están cargados, pero no aparece nada en el mapa.

¿Alguien tiene experiencia con geoserver y wfs en 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
fuente

Respuestas:

3

He visto esto respondido bastante aquí.

Debe ejecutar el archivo HTML desde un servidor web y acceder mediante:

SERVIDOR: 8080 / geoserver / index.html

o como sea que el tuyo esté configurado.

No puede simplemente hacer doble clic en el archivo HTML y ver la capa WFS.

ianbroad
fuente
Se accede al archivo con este javascript a través de un servidor web.
Trond Thorbjørnsen
¡OKAY! Ahora entiendo: no puedo acceder a los datos de wfs desde otro servidor web, tengo que tener el archivo html en el servidor web geoserver.
Trond Thorbjørnsen
44
@GISer "He visto que esto respondió bastante aquí". De Verdad? Esta es la única publicación que he visto que se dirige específicamente a OL3. No me importaría ver una mejor documentación sobre esto, ya que la documentación de OL3 sigue siendo un trabajo en progreso.
Kyle
1
Esto no tiene sentido. ¿Está diciendo que si tiene datos remotos de GeoJSON que tiene que ejecutarse en el mismo servidor que sirve el mapa? Si ve algunos de los ejemplos de OpenLayers en su sitio web, los datos espaciales no tienen que residir en el mismo servidor que el servidor de mapas que muestra los datos.
user3657279
3

Estoy de acuerdo con Kyle. Incluso un año después, me llevó un tiempo encontrar buenos ejemplos con explicaciones que puedan reproducirse fácilmente.

Me gustan los ejemplos del libro de Openlayers 3. Lamentablemente no tengo acceso al libro en sí, pero creo que está bien escrito a juzgar por los ejemplos.

Este ejemplo es para ol 3.4

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

Tuve algunos problemas al replicar el ejemplo maestro ol 3.5 vector-wfs de la página de ejemplos de openlayers. Estos problemas probablemente ya se hayan solucionado.

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

Creé tres jsfiddle para demostrar llamadas ol 3.5.0 a través de AJAX para ol.format.GeoJSON (JSON y JSONP), así como ol.format.WFS.

WFS (el acceso CORS debe estar habilitado en el servidor web, por ejemplo , para Apache Tomcat )

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

JSON (el acceso CORS debe estar habilitado en el servidor web, por ejemplo , para Apache Tomcat )

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

JSONP (JSONP debe estar habilitado en Geoserver )

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

Dennis Bauszus
fuente
Bueno, la respuesta llegó dos años después de la respuesta aceptada, y la respuesta aceptada fue correcta hasta donde llegó. Pero esto es mucho más útil.
Auspex
0

Creo que lo que necesita es esto:
Referencia de la API de configuración REST
Con REST puede llamar datos entre servidores (o entre, por ejemplo, Apache en el puerto 80 y geoservidor en el puerto 8080 si es el mismo servidor).

António Cabral
fuente