Wie kann ich WFS von Geoserver mit OpenLayers 3 verwenden?


8

Ich habe es mit verschiedenen Setups und Formaten versucht, aber keinen Erfolg.

Mit Firebug kann ich sehen, dass die JSON-Daten geladen sind, aber auf der Karte wird nichts angezeigt.

Hat jemand Erfahrung mit Geoserver und wfs in 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
     })
   ]
 })
]})  
});

Antworten:


3

Ich habe gesehen, dass dies hier ziemlich oft beantwortet wurde.

Sie müssen die HTML-Datei von einem Webserver ausführen und auf Folgendes zugreifen:

SERVER: 8080 / geoserver / index.html

oder wie auch immer deins eingerichtet ist.

Sie können nicht einfach auf die HTML-Datei doppelklicken und die WFS-Ebene anzeigen.


Auf die Datei mit diesem Javascript wird über einen Webserver zugegriffen.
Trond Thorbjørnsen

OK! Jetzt verstehe ich: Ich kann nicht von einem anderen Webserver auf die wfs-Daten zugreifen. Ich muss die HTML-Datei auf dem Geoserver-Webserver haben.
Trond Thorbjørnsen

4
@GISer "Ich habe gesehen, dass dies hier ziemlich oft beantwortet wurde." "Ja wirklich?" Dies ist der einzige Beitrag, den ich gesehen habe und der speziell auf OL3 abzielt. Ich hätte nichts dagegen, eine bessere Dokumentation dazu zu sehen, da die OL3-Dokumentation noch in Arbeit ist.
Kyle

1
Das macht keinen Sinn. Wollen Sie damit sagen, dass Sie Remote-GeoJSON-Daten auf demselben Server ausführen müssen, der die Karte bedient? Wenn Sie einige der OpenLayers-Beispiele auf ihrer Website sehen, müssen sich die räumlichen Daten nicht auf demselben Server befinden wie der Kartenserver, auf dem die Daten angezeigt werden.
user3657279

3

Ich stimme Kyle zu. Selbst ein Jahr später habe ich eine Weile gebraucht, um gute Beispiele mit Erklärungen zu finden, die sich leicht reproduzieren lassen.

Ich mag die Beispiele aus dem 'Buch der Openlayers 3'. Leider habe ich keinen Zugang zum Buch selbst, aber ich glaube, dass es nach den Beispielen gut geschrieben ist.

Dieses Beispiel ist für ol 3.4

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

Ich hatte einige Probleme beim Replizieren des alten 3.5-Vektor-WFS-Master-Beispiels von der OpenLayer-Beispielseite. Diese Probleme sind wahrscheinlich inzwischen behoben.

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

Ich habe drei jsfiddle erstellt, um ol 3.5.0-Aufrufe über AJAX für ol.format.GeoJSON (JSON und JSONP) sowie ol.format.WFS zu demonstrieren.

WFS (CORS-Zugriff muss auf dem Webserver aktiviert sein, z. B. für Apache Tomcat )

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

JSON (CORS-Zugriff muss auf dem Webserver aktiviert sein, z. B. für Apache Tomcat )

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

JSONP (JSONP muss in Geoserver aktiviert sein )

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


Nun, die Antwort kam zwei Jahre nach der akzeptierten Antwort, und die akzeptierte Antwort war soweit richtig. Das ist aber viel nützlicher.
Auspex

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.