Mengimplementasikan klien WPS di OpenLayers 3?

8

Apakah mungkin (dan apa cara yang disarankan) untuk menggunakan OpenLayers 3 untuk melakukan pekerjaan OpenLayers.WPSClient?

Seperti yang ditunjukkan pada contoh klien WPS lama , OpenLayers 2 dapat digunakan untuk mengoperasikan WPS.

Ada contoh OpenLayers 3 untuk menggunakan layanan web lain seperti WFS dan WMS, tetapi tidak WPS (pada 3.2.1).

Apakah ini sementara atau karena desain?

tinlyx
sumber

Jawaban:

7

Sebagai bagian dari proyek WPS-GUI yang saya lakukan, saya membuat "perpustakaan" klien WPS yang mirip dengan model setelah antarmuka OpenLayers 2. Ini menggunakan JSONIX ( http://confluence.highsource.org/display/JSNX/Jsonix ) untuk semua marshalling dan unmarshalling OGC XML.

Anda dapat memeriksanya di sini:

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

bartvde
sumber
Terima kasih banyak atas jawaban Anda! Apakah file js ini berdiri sendiri? Ini sedikit berlebihan untuk keterampilan js saya. Tampaknya ada referensi wpsclient.jske HTMLelemen dan "global"variabel. Bisakah Anda memberikan contoh penggunaan minimal, misalnya untuk menelepon gs:AddCoveragesatau wps lain di GeoServer / OpenGeo?
tinlyx
Sudahkah Anda melihat contoh OpenLayers 2 WPS? Antarmuka yang digunakan di sini sangat mirip.
bartvde
Terima kasih, saya akan memeriksanya. Saya mulai dengan OpenLayers 3, dan perlu menguji OpenLayers 2.
tinlyx
@ Bartvde Bisakah Anda memberi saya contoh buffer menggunakan layanan wps di openlayer 3. ??
Priyanka
3

Saya juga menggunakan kembali klien openlayers 2 dalam pembuat wps . Saya memang harus melaksanakan itu DefaultValuedan ExecuteResponsebenda-benda.

Ada beberapa kebutuhan yang lebih luas untuk klien pemetaan klien wps independen, seperti terlihat dalam diskusi ini tentang bekerja menuju ows.js (berdasarkan jsonix, seperti implementasi @ bartvde). Sejak itu pekerjaan diskusi telah dimulai . Implementasi WPS belum dimulai. Ide javascript ows.js dimodelkan setelah perpustakaan owslib yang nyaman .

Tantangan utama dalam mengimplementasikan klien WPS adalah:

  • mendefinisikan xml ke pemetaan objek. Itulah peran jsonix dan pembaca format OpenLayers (2) .
  • mendefinisikan api yang nyaman untuk mengeksekusi permintaan. Jika Anda melihat implementasi owslib wps sebagai contoh, Anda akan melihat bahwa menerapkan api yang nyaman untuk proses WPS bukanlah tugas yang sepele. Beragam pilihan (dengan / tanpa status, respons mentah / tanggapan referensi, dll ...) menjadikan mendukung semua kemungkinan keluaran dan keluaran menjadi cukup sulit.
SiggyF
sumber
2

Satu kemungkinan adalah menggunakan klien wps dari openlayers 2 dalam proyek openlayers 3 Anda. Respons dari permintaan wps ada di WKT dan Anda dapat dengan mudah memformat ini ke fitur openlayers 3 dengan pemformat bawaan.

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

(Responsnya tergantung pada permintaan wps apa yang Anda gunakan tentu saja ..)

Saya melakukan ini dalam proyek karena saya tidak punya waktu untuk mengimplementasikan klien wps saya sendiri.

antonLundkvist
sumber
2

Anda bisa melakukan trik seperti ini. Geoserver memiliki WPS Builder yang dapat menghasilkan Permintaan Xml dari input dan output. Daripada Anda dapat mengambil xml yang dihasilkan dan meneruskannya dalam variabel string dalam javascript. Ganti nilai input xml dengan variabel. Dalam kasus saya, saya hanya perlu satu proses, tetapi Anda dapat melakukan fungsi saklar. Anda dapat menggunakan permintaan xmlPost sederhana untuk meneruskan string xml ke geoserver.

Majk Shkurti
sumber