WPS-Client in OpenLayers 3 implementieren?

8

Ist es möglich (und wie wird empfohlen), OpenLayers 3 für die Arbeit von zu verwenden OpenLayers.WPSClient?

Wie im alten WPS-Client-Beispiel gezeigt , kann OpenLayers 2 zum Betreiben von WPS verwendet werden.

Es gibt OpenLayers 3- Beispiele für die Verwendung anderer Webdienste wie WFS und WMS, jedoch nicht von WPS (ab 3.2.1).

Ist das vorübergehend oder beabsichtigt?

Tinlyx
quelle

Antworten:

7

Im Rahmen des von mir durchgeführten WPS-GUI-Projekts habe ich eine WPS-Client- "Bibliothek" erstellt, die der OpenLayers 2-Schnittstelle sehr nahe kommt. Es verwendet JSONIX ( http://confluence.highsource.org/display/JSNX/Jsonix ) für das gesamte OGC-XML-Marshalling und -Demarshalling.

Sie können es hier überprüfen:

https://github.com/boundlessgeo/wps-gui/blob/master/src/wpsclient.js

bartvde
quelle
Vielen Dank für Ihre Antwort! Ist diese js-Datei eigenständig? Dies ist ein bisschen überwältigend für meine Fähigkeiten. Es scheint Verweise wpsclient.jsauf HTMLElemente und "global"Variablen zu geben. Könnten Sie bitte ein minimales Beispiel geben, z. B. zum Aufrufen gs:AddCoveragesoder eines anderen wps in GeoServer / OpenGeo?
Tinlyx
Haben Sie sich das OpenLayers 2 WPS-Beispiel angesehen? Die hier verwendete Schnittstelle ist sehr ähnlich.
Bartvde
Danke, ich werde einen Blick darauf werfen. Ich habe mit OpenLayers 3 angefangen und muss OpenLayers 2 testen.
Tinlyx
@bartvde Kannst du mir ein Beispiel für einen Puffer geben, der den wps-Dienst in openlayer 3 verwendet?
Priyanka
3

Ich habe auch den openlayers 2-Client in einem wps-Builder wiederverwendet . Ich musste die und Objekte implementieren .DefaultValueExecuteResponse

Es besteht ein größerer Bedarf an einem Mapping-Client-unabhängigen wps-Client, wie in dieser Diskussion über die Arbeit an einem ows.js (basierend auf jsonix, wie die Implementierung von @ bartvde) gezeigt wird. Seit dieser Diskussion hat die Arbeit begonnen . Die WPS-Implementierung wurde noch nicht gestartet. Die Idee von Javascript ows.js ist der praktischen owslib- Bibliothek nachempfunden .

Die wichtigsten Herausforderungen bei der Implementierung eines WPS-Clients sind:

  • Definieren der Zuordnung von XML zu Objekt. Das ist die Rolle von jsonix und den Lesern im OpenLayers (2) -Format .
  • Definieren einer praktischen API zum Ausführen von Anforderungen. Wenn Sie sich die Implementierung von owslib wps als Beispiel ansehen, werden Sie feststellen, dass die Implementierung einer praktischen API für die WPS-Prozesse keine triviale Aufgabe ist. Die Vielzahl von Optionen (mit / ohne Status, Rohantwort / Referenzantwort usw.) macht die Unterstützung aller möglichen Ein- und Ausgänge zu einer ziemlichen Herausforderung.
SiggyF
quelle
2

Eine Möglichkeit besteht darin, den wps-Client von openlayers 2 in Ihrem openlayers 3-Projekt zu verwenden. Die Antwort von der wps-Anfrage ist in WKT und Sie können diese mit dem eingebauten Formatierer einfach in eine Openlayers 3-Funktion formatieren.

http://openlayers.org/en/v3.9.0/apidoc/ol.format.WKT.html

(Die Antwort hängt natürlich davon ab, welche wps-Anfrage Sie verwenden.)

Ich habe dies in einem Projekt getan, da ich keine Zeit hatte, meinen eigenen wps-Client zu implementieren.

antonLundkvist
quelle
2

Sie können einen solchen Trick machen. Geoserver verfügt über einen WPS Builder, der XML-Anforderungen aus Ein- und Ausgaben generieren kann. Dann können Sie die generierte XML-Datei in eine Zeichenfolgenvariable in Javascript übergeben. Ersetzen Sie XML-Eingabewerte durch Variablen. In meinem Fall brauchte ich nur einen Prozess, aber Sie können eine Schaltfunktion ausführen. Sie können eine einfache xmlPost-Anforderung verwenden, um die XML-Zeichenfolge an den Geoserver zu übergeben.

Majk Shkurti
quelle