¿Implementando cliente WPS en OpenLayers 3?

Respuestas:

7

Como parte del proyecto WPS-GUI que hice, creé una "biblioteca" de cliente WPS que se asemeja a la interfaz OpenLayers 2. Utiliza JSONIX ( http://confluence.highsource.org/display/JSNX/Jsonix ) para toda la clasificación y descomposición de OGC XML.

Puede verificarlo aquí:

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

Bartvde
fuente
¡Muchas gracias por tu respuesta! ¿Es este archivo js independiente? Esto es un poco abrumador para mis habilidades js. Parece haber referencias wpsclient.jsa HTMLelementos y "global"variables. ¿Podría dar un ejemplo de uso mínimo, por ejemplo, para llamar gs:AddCoveragesu otro wps en GeoServer / OpenGeo?
tinlyx
¿Has mirado el ejemplo de OpenLayers 2 WPS? La interfaz utilizada aquí es muy similar.
bartvde
Gracias, echaré un vistazo. Comencé con OpenLayers 3, y necesito probar OpenLayers 2.
tinlyx
@bartvde ¿Puedes darme un ejemplo de búfer usando el servicio wps en openlayer 3?
Priyanka
3

También reutilicé el cliente de Openlayers 2 en un generador de wps . Tuve que implementar los objetos DefaultValuey ExecuteResponse.

Existe una necesidad más amplia de un cliente de mapeo wps independiente, como se ve en esta discusión sobre el trabajo hacia un ows.js (basado en jsonix, como la implementación de @ bartvde). Desde esa discusión, el trabajo ha comenzado . La implementación de WPS aún no ha comenzado. La idea de javascript ows.js sigue el modelo de la conveniente biblioteca owslib .

Los principales desafíos en la implementación de un cliente WPS son:

  • definiendo el mapeo de xml a objeto. Ese es el papel de jsonix y los lectores de formato OpenLayers (2) .
  • definiendo una api conveniente para ejecutar solicitudes. Si observa la implementación de owslib wps como ejemplo, verá que implementar una API conveniente para los procesos de WPS no es una tarea trivial. La gran variedad de opciones (con / sin estado, respuesta sin procesar / respuesta de referencia, etc.) hacen que el soporte de todas las entradas y salidas posibles sea todo un desafío.
SiggyF
fuente
2

Una posibilidad es utilizar el cliente wps de openlayers 2 en su proyecto openlayers 3. La respuesta de la solicitud de wps está en WKT y puede formatearla fácilmente en una función de capas abiertas 3 con el formateador incorporado.

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

(La respuesta depende de qué solicitud de wps está utilizando, por supuesto ...)

Hice esto en un proyecto ya que no tuve tiempo para implementar mi propio cliente wps.

antonLundkvist
fuente
2

Puedes hacer un truco como este. Geoserver tiene un generador de WPS que puede generar solicitudes Xml a partir de entradas y salidas. Luego puede tomar el xml generado y pasarlo en una variable de cadena en javascript. Reemplace los valores de entrada xml con variables. En mi caso, solo necesitaba un proceso, pero puedes hacer una función de cambio. Puede usar una simple solicitud xmlPost para pasar la cadena xml a geoserver.

Majk Shkurti
fuente