GetFeature 请求

发送反馈


请求参数

GetFeature 操作的主要请求参数如下表所示:

表1 GetFeature 操作主要请求参数

请求参数 是否必需 描述

VERSION

请求版本号。

请求 WFS 2.0.0 服务,请求版本号需要设为"2.0.0"。

SERVICE

服务类型。

请求 WFS 2.0.0 服务,服务类型需要设为"WFS"。

REQUEST

请求名称。

请求 GetFeature 操作,请求名称需要设为"GetFeature"。

NAMESPACES

命名空间。

用于指定命名空间和其前缀,形式为 xmlns(前缀为 escaped_url)。如果前缀没有被定义,则默认的命名空间应该被声明。可以通过英文逗号将 xmlns()值的多个命名空间连接起来。

VSPs

提供者特定参数。

GetFeature 请求中允许可选的服务提供者特定参数(vendor-specific parameters,VSPs),这些参数由供应商指定,不属于国际标准的 KVP 参数。这些参数的使用增强了请求的响应结果。VSPs 丢失或错误时,服务可以提供一个默认值。VSPs 在不被服务所知道的情况下被应用时,服务可以选择忽略不知道的请求参数。

WFS 可以选择不声明部分或全部 VSPs。如果 VSPs 包含在 Capabilities XML 中,则 ExtendedCapabilities 元素应该进行相应扩展。包含了 ExtendedCapabilities 扩展元素的其他 Schema 文档可以被引入到 Capabilities XML 文档中。客户端可以从 Capabilities Schema 中读取服务提供者特定的定义,并且使用 VSPs 构成请求。WFS 实现者在为 VSP 选择名字时应该注意,不要与国际标准中定义的 WFS 参数产生冲突。

目前 SuperMap iServer 不支持该参数。

STARTINDEX

开始索引号。

指定结果集在响应文档中开始呈现的索引号。

COUNT

返回数量。

指定返回结果中包含的要素数量。

OUTPUTFORMAT

响应结果编码格式。

限定执行 GetFeature 操作后,响应结果资源的编码格式,默认值为"application/gml+xml; version=3.2"。这个默认值表明文档中列出的响应资源应该使用 GML3.2 编码。  此外,iServer 还支持了以 json 格式输出。

RESULTTYPE

返回类型。

WFS 2.0.0 服务的 GetFeature 操作支持两种格式(响应异常除外)。既可以返回一个完整响应文档,文档中包含满足该请求的资源;也可以返回一个空响应文档,用于指示该操作可以返回的资源总数。最终返回的文档类型由 RESULTTYPE 参数决定。RESULTTYPE 参数的值可以为"results"和"hits",默认值为"results"。"results"表示返回满足操作请求的完整响应文档,"hits"表示返回一个没有资源实例的空响应文档。

RESOLVE

资源引用。

RESOLVE 参数表示选择的(例如本地或远程资源)资源引用,值可以为 local、remote、all 或 none。WFS 2.0.0 服务的 RESOLVE 参数支持的值在 capabilties XML 文档中进行了声明。

目前 SuperMap iServer 不支持该参数。

RESOLVEDEPTH

资源嵌套深度。

RESOLVEDEPTH 参数决定了响应文档中资源嵌套的深度,该参数的有效值范围由非负整数加“*”构成。如果未指定 RESOLVE 参数的值或是值设为 none,服务器会忽略 RESOLVEDEPTH 参数中指定的任何值。

目前 SuperMap iServer 不支持该参数。

RESOLVETIMEOUT

资源解析时间。

RESOLVETIMEOUT 参数决定了服务器从解析资源引用开始,到服务器接收到响应时所需等待的时间。如果 RESOLVE 参数值设为 none,RESOLVETIMEOUT 参数值无效。

目前 SuperMap iServer 不支持该参数。

Adhoc Query Keywords

-

Adhoc Query Keywords 中特定参数,详见表2
Adhoc Query Keywords 与 Stored Query Keywords 互斥。
Stored Query Keywords

-

Stored Query Keywords 中特定参数,详见表4
Stored Query Keywords 与 Adhoc Query Keywords 互斥。

Adhoc Query Keywords 中包含的 KVP 编码请求参数如下表所示:

表2 Adhoc Query Keywords 中的请求参数

请求参数 是否必需 描述

TYPENAMES

要素类型列表。

通过该参数可以指定多个要素类型,不同要素类型之间以英文逗号分隔。

除 RESOURCEID 参数被指定的情况外,其他任何时候都为必需参数。

ALIASES

要素类型别名。

在查询请求中用于指定要素类型的别名,值由 TYPENAMES 参数指定。要素类型别名可以在任何地方使用,要素类型名只能用于查询请求的上下文。要素类型别名的使用方式如下所示:

TYPENAMES=(ns1:FeatureType1,ns2:FeatureType2)(ns2:FeatureType2,ns2:FeatureType3)&ALIASES=(A,B)(C,D)

目前 SuperMap iServer 不支持该参数

SRSNAME

坐标参考系名称。

可以根据响应文档中 SRSNAME 属性值判定,WFS 服务支持哪种应用于几何要素的 CRS 转换。SRSNAME 属性值可能为 capabilities 文档中列出的要素类型的 DefaultCRS 或 OtherCRS 值。如果 SRSNAME 属性值未指定,则响应文档中列出的要素类型应使用 DefaultCRS 值编码。

目前 SuperMap iServer 不支持该参数

Projection clause

-

Projection clause 中特定参数,详见表3

FILTER

过滤表达式。

使用 FILTER_LANGUAGE 参数指定的语言编码的过滤表达式。

该参数与 BBOX 和 RESOURCEID 参数互斥。

请参见FILTER 示例

FILTER_LANGUAGE

过滤表达式编码语言。

用来指定编码过滤表达式的语言, FILTER 参数的值即为编码后的过滤表达式。FILTER_LANGUAGE 参数的默认值 urn:ogc:def:query Language:OGC-FES:Filter,用来表明 FILTER 参数的值为一个字符串,该字符串是使用国际标准中定义的 XML 标签编码的。

目前 SuperMap iServer 不支持该参数。

RESOURCEID

资源标识符。

从数据存储中获取的资源标识符列表(多个标识符间用英文逗号隔开)。

该参数与 BBOX 和 FILTER 参数互斥。

BBOX

边界框。

该参数与 RESOURCEID 和 FILTER 参数互斥。

请参见 边界框

SORTBY

属性排序方式。

该参数用来指定属性的排序方式,可以为升序方式排序(ASC),也可以为降序方式排序(DESC)。如果未指定排序方式,则默认按升序方式排序(ASC)。

如:"SORTBY=Field1 DESC,Field2 DESC,Field3" ,表示 Field1 按降序方式排序,Field2 按降序方式排序,Field3 按升序方式排序。

Projection clause 中包含的 KVP 编码请求参数如下表所示:

表3 Projection clause 中的请求参数

请求参数 是否必需 描述

PROPERTYNAME

属性名称列表。

表示包含在响应中的非必需属性列表。如果多个要素类型名称被指定为 TYPENAMES 的值,则相应的列表参数应该被指定。

RESOLVE

资源引用。

RESOLVE 参数表示选择的(例如本地或远程资源)资源引用,值可以为 local、remote、all 或 none。WFS 2.0.0 服务的 RESOLVE 参数支持的值在 capabilties XML 文档中进行了声明。

目前 SuperMap iServer 不支持该参数。

RESOLVEDEPTH

资源嵌套深度。

RESOLVEDEPTH 参数决定了响应文档中资源嵌套的深度,该参数的有效值范围由非负整数加“*”构成。如果未指定 RESOLVE 参数的值或是值设为 none,服务器会忽略 RESOLVEDEPTH 参数中指定的任何值。

目前 SuperMap iServer 不支持该参数。

RESOLVETIMEOUT

资源解析时间。

RESOLVETIMEOUT 参数决定了服务器从解析资源引用开始,到服务器接收到响应时所需等待的时间。如果 RESOLVE 参数值设为 none,RESOLVETIMEOUT 参数值无效。

目前 SuperMap iServer 不支持该参数。

Stored Query Keywords 中包含的 KVP 编码请求参数如下表所示:

表4 Stored Query Keywords 中的请求参数

请求参数 是否必需 描述

STOREDQUERY_ID

存储查询标识符。

SuperMap iServer 只提供了 GetFeatureById 存储查询方式,其对应的标识符为 urn:ogc:def:query:OGC-WFS::GetFeatureById。

STOREDQUERY_PARAMETER

存储查询参数。

存储查询参数应该使用 KVP 编码,存储查询参数使用的名字不能和 WFS 中的参数名冲突。

请求示例

GetFeature 操作支持 Query 和 StoredQuery 两种查询方式。

1. Query 请求示例

<ServiceRoot>?SERVICE=WFS&VERSION=version&REQUEST=GetFeature&TYPENAMES=type_list&FILTER=filter

ServiceRoot 为服务的 URI 根目录,请参见 服务的 URI 设置

例如,本机 SuperMap iServer WFS 2.0.0 服务启动成功之后,访问 GetFeature 操作的 URI 是:http://localhost:8090/iserver/services/data-world/wfs200?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=World:Capitals&FILTER=<fes:Filter><fes:And><fes:PropertyIsEqualTo><fes:ValueReference>World:COUNTRY</fes:ValueReference><fes:Literal>美国</fes:Literal></fes:PropertyIsEqualTo><fes:PropertyIsEqualTo><fes:ValueReference>World:CAPITAL</fes:ValueReference><fes:Literal>华盛顿</fes:Literal></fes:PropertyIsEqualTo></fes:And></fes:Filter>。

该请求示例的响应结果请参见 响应示例

即对 http://localhost:8090/iserver/services/data-world/wfs200 ,执行 POST 请求,请求体如下:

<?xml version="1.0"?>

<wfs:GetFeature service="WFS" version="2.0.0"

    valueReference="World:CAPITAL" outputFormat="application/gml+xml; version=3.2"

    xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:fes="http://www.opengis.net/fes/2.0"

    xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.opengis.net/wfs/2.0

                       http://schemas.opengis.net/wfs/2.0.0/wfs.xsd

                       http://www.opengis.net/gml/3.2

                       http://schemas.opengis.net/gml/3.2.1/gml.xsd">

    <wfs:Query typeNames="World:Capitals">

        <fes:Filter>

            <fes:And>

                <fes:PropertyIsEqualTo>

                    <fes:ValueReference>World:COUNTRY</fes:ValueReference>

                    <fes:Literal>美国</fes:Literal>

                </fes:PropertyIsEqualTo>

                <fes:PropertyIsEqualTo>

                    <fes:ValueReference>World:CAPITAL</fes:ValueReference>

                    <fes:Literal>华盛顿</fes:Literal>

                </fes:PropertyIsEqualTo>

            </fes:And>

        </fes:Filter>

    </wfs:Query>

</wfs:GetPropertyValue>

该请求示例的响应结果同 KVP 编码请求,请参见 响应示例

2. StoredQuery 请求示例

<ServiceRoot>?SERVICE=WFS&VERSION=version&REQUEST=GetFeature&STOREDQUERY_ID=storedquery_id&STOREDQUERY_PARAMETER=storedquery_parameter

ServiceRoot 为服务的 URI 根目录,请参见 服务的 URI 设置

例如,本机 SuperMap iServer WFS 2.0.0 服务启动成功之后,访问 GetFeature 操作的 URI 是:http://localhost:8090/iserver/services/data-world/wfs200?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&STOREDQUERY_ID=urn:ogc:def:query:OGC-WFS::GetFeatureById&ID=World.Capitals.8。

该请求示例的响应结果请参见 响应示例

即对  http://localhost:8090/iserver/services/data-world/wfs200 ,执行 POST 请求,请求体如下:

<?xml version="1.0"?>

<wfs:GetFeature service="WFS" version="2.0.0" count="10"

    startIndex="0" outputFormat="application/gml+xml; version=3.2"

    xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:fes="http://www.opengis.net/fes/2.0"

    xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.opengis.net/wfs/2.0

                       http://schemas.opengis.net/wfs/2.0.0/wfs.xsd

                       http://www.opengis.net/gml/3.2

                       http://schemas.opengis.net/gml/3.2.1/gml.xsd">

    <wfs:StoredQuery id="urn:ogc:def:query:OGC-WFS::GetFeatureById">

        <wfs:Parameter name="id">World.Capitals.8</wfs:Parameter>

    </wfs:StoredQuery>

</wfs:GetFeature>

该请求示例的响应结果同 KVP 编码请求,请参见 响应示例