Vous implémentez le client WPS dans OpenLayers 3?

8

Est-il possible (et quelle est la méthode recommandée) d'utiliser OpenLayers 3 pour faire le travail du OpenLayers.WPSClient?

Comme indiqué dans l'ancien exemple de client WPS , OpenLayers 2 peut être utilisé pour faire fonctionner WPS.

Il existe des exemples d' OpenLayers 3 pour utiliser d'autres services Web comme WFS et WMS, mais pas WPS (à partir de 3.2.1).

Est-ce temporaire ou par conception?

tinlyx
la source

Réponses:

7

Dans le cadre du projet WPS-GUI que j'ai fait, j'ai créé une "bibliothèque" de client WPS qui modélise étroitement l'interface d'OpenLayers 2. Il utilise JSONIX ( http://confluence.highsource.org/display/JSNX/Jsonix ) pour le marshalling et le démarshalling XML de l'OGC.

Vous pouvez le voir ici:

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

Bartvde
la source
Merci beaucoup pour votre réponse! Ce fichier js est-il autonome? C'est un peu écrasant pour mes compétences js. Il semble y avoir des références wpsclient.jsaux HTMLéléments et aux "global"variables. Pourriez-vous s'il vous plaît donner un exemple d'utilisation minimale, par exemple pour appeler gs:AddCoveragesou un autre wps dans GeoServer / OpenGeo?
tinlyx
Avez-vous regardé l'exemple OpenLayers 2 WPS? L'interface utilisée ici est très similaire.
bartvde
Merci, je vais jeter un oeil. J'ai commencé avec OpenLayers 3, et j'ai besoin de tester OpenLayers 2.
tinlyx
@bartvde Pouvez-vous me donner un exemple de tampon utilisant le service wps dans openlayer 3. ??
Priyanka
3

J'ai également réutilisé le client openlayers 2 dans un constructeur wps . J'ai dû implémenter les objets DefaultValueet ExecuteResponse.

Il existe un besoin plus large pour un client wps indépendant du client de mappage, comme on le voit dans cette discussion sur le travail vers un ows.js (basé sur jsonix, comme l'implémentation de @ bartvde). Depuis cette discussion, le travail a commencé . La mise en œuvre du WPS n'a pas encore commencé. L'idée de javascript ows.js est calquée sur la bibliothèque owslib pratique .

Les principaux défis de la mise en œuvre d'un client WPS sont les suivants:

  • définir le mappage xml-objet. C'est le rôle de jsonix et des lecteurs de format OpenLayers (2) .
  • définir une API pratique pour exécuter les requêtes. Si vous regardez l' exemple de l'implémentation de wps owslib, vous verrez que l'implémentation d'une API pratique pour les processus WPS n'est pas une tâche triviale. La grande variété d'options (avec / sans statut, réponse brute / réponse de référence, etc ...) rend difficile la prise en charge de toutes les entrées et sorties possibles.
SiggyF
la source
2

Une possibilité consiste à utiliser le client wps de openlayers 2 dans votre projet openlayers 3. La réponse de la demande wps est en WKT et vous pouvez facilement la formater en fonction openlayers 3 avec le formateur intégré.

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

(La réponse dépend de la demande wps que vous utilisez bien sûr ..)

Je l'ai fait dans un projet car je n'ai pas eu le temps de mettre en œuvre mon propre client wps.

antonLundkvist
la source
2

Vous pouvez faire un tour comme celui-ci. Geoserver possède un WPS Builder qui peut générer une requête Xml à partir d'entrées et de sorties. Ensuite, vous pouvez prendre le xml généré et le transmettre dans une variable de chaîne en javascript. Remplacez les valeurs d'entrée xml par des variables. Dans mon cas, je n'avais besoin que d'un seul processus, mais vous pouvez faire une fonction de commutation. Vous pouvez utiliser une simple requête xmlPost pour transmettre la chaîne xml à geoserver.

Majk Shkurti
la source