[Qgis-developer] WPS server

rldhont rldhont at gmail.com
Mon Dec 3 01:01:23 PST 2012


Hi Paolo,
Hi Luca,
Hi all,

I'll explain my idea about QGIS-Server and WPS implementation.

For the next QGIS release, 3Liz has decided to improve QGIS-Server WFS 
implementation. The main improvement is to cover the maximum of the 
1.0.0 standard, especially Transaction. For Transaction and GetFeature 
Request, I needed to extend the QGIS Expressions directly in the QGIS 
core. I added some spatial operators like Intersects, Contains, Disjoint 
but I also added spatial constructor like geomFromWKT, Intersection, 
buffer. The last point means that it's possible to construct a buffer 
with the QGIS Expression system.
I also discovered that in the Filter Encoding OGC  standard, it's 
possible to use Functions and the QGIS Expression system provides a 
reader for this way of describing expressions.
And Nathan Woordrow publishing 'User defined expression functions for 
QGIS' on his blog 
http://woostuff.wordpress.com/2012/11/10/user-defined-expression-functions-for-qgis/ 
. This point explaining how the new QGIS Expression system is 
extendable. And for me it was the start for testing a WPS 
implementation, because I needed WPS for validating geometry for the WFS 
Transaction Request.

I've worked on a WPS project which provides a way to create Process in a 
wide range of programming langage, the ZOO-Project. I've worked on the 
JavaScript Provider. In this project, you have to code to create new 
process.

With the QGIS Expression you just have to know how to write an 
expression to create a new Process. It's not coding.
For example the Buffer Process can be described like this :
buffer("geometry","distance")
You want to create a Process which retrun the buffer without the geometry :
difference(buffer("geometry","distance"),"geometry")
And we can define a Process which return the result of a QGIS Expression 
as the Process parameter.

My plan for WPS implementation is firstly to find fund, to :
* implement the standard (defining how to declare process, how to use 
the posting XML for Excute Request, how to use QGIS layer from project, etc)
* loading Python scripts for 'User defined expression functions'
* Using Sextante

Sextante is not my priority because it is more complexe, the QGIS-Server 
doesn't load python and python plugins, and we firstly need to provide a 
way to have simple Process and simple way to describe Process, after 
that it will be easy to use SEXTANTE.

Regards,
René-Luc D'Hont
3Liz


More information about the Qgis-developer mailing list