-
Notifications
You must be signed in to change notification settings - Fork 0
WPS:KVP方式的execute请求
目前输入的URL还只能是一些服务器上的数据,如上面的http://localhost/a.gml,a.gml数据在apache服务器的/usr/local/apache/htdocs目录中
1. 处理标识符
2. 在DescribeProcess中定义的输入变量
3. 版本和语言
4. 输出类型
a) 存储在服务器(Stored in the server)
b) 被包含在响应的XML中
c)单一输出的原始响应,把结果丢给用户(列如一副影像)
5. 是否服务需要返回状态文档(同步或非同步调用)
6. 是否输入数据应该在响应文档中返回
要注意的是:Execute返回的ResponseDocument的一个缺点是将返回所有的输出,用户需要制定必须返回的输出,如...responsedocement=out1;out2;...
1. KVP执行请求
KVP和HTTP GET需要准循下面的协议向导和编码系统来执行一个请求。
KVP输入应该准循如下的编码规则
1) 分号(;)用来分开多个输入
2) 等号(=)将输入名和它的值分开以,将属性名和他的值分开
3) at(@)符号将属性值和他的属性分开,属性之间的分离
4) 所有的域值和属性值应该用标准URLs编码编码
5) pyWPS支持用[ ]以 datainputs=[input1=...;input2=...;... ]的方式对输入的数据进行封装
一个有3个LiteralData输入的KVP执行请求例子如下: http://apps.esdi-humboldt.cz/pywps/?service=WPS&version=1.0.0&request=Execute&identifier=literalprocess&datainputs=int=1;float=3.2;zeroset=0;string=spam&storeExecuteResponse=false@lineage=true@status=false 同DescribeProcess一样,服务(service)和版本(version)是必有的参数。 像storeExecute或status这样的参数依赖于process,也即process的创建者定义了是否process支持存储和更新。
一个literalData值的编码如下:...width=35@datatype=xs:integer@uom=meter
一个复杂数据(ComplexValue)的XML输入的例子:....complexFieldName=http%3A%2F%2Ffoo%2Ebar%2Fshapefile@Format=text/xml@Encoding=utf-8@Schema=gml.xsd 在这个例子中,XML输入的位置在http://foo.bar/shapefile,他的XML文件的模式是gml.xsd
Bounding Box例子:bboxInput=46,102,47,103,urn:ogc:def:crs:EPSG:6.6:4326,2