仅在WFS查询中返回NumberOfFeatures


11

我正在GeoServer中运行GetFeature WFS查询(在多边形内查找要素),但我真正想要的只是要素总数。是否有一种仅返回此信息的方法(希望查询运行得更快)而不是所有记录?

该查询返回了10,000多个功能,因此我希望这将有所作为。

Answers:


12

您可以将参数resultType设置为“ hits”,您将在查询中获得与SQL中的count()函数相似的功能数量。

HTTP Get请求示例:

http://localhost:8080/geoserver/wfs?request=GetFeature&typeName=topp:states&version=1.1.0&resultType=hits

带有过滤器的HTTP Post请求示例:

<wfs:GetFeature service="WFS" version="1.1.0"
  resultType="hits"
  xmlns:topp="http://www.openplans.org/topp"
  xmlns:wfs="http://www.opengis.net/wfs"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd">
  <wfs:Query typeName="topp:states">
    <ogc:Filter>
       <ogc:FeatureId fid="states.3"/>
    </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

谢谢taudorf-奏效了。有趣的是,搜索时间(直接在geoserver中运行搜索)花费了18秒-相对于每个要素仅返回一个字段所需的41秒。
user8262 2013年

5

如果您使用的是WFS 1.1,则可以设置resultype = hits,这将仅返回与查询匹配的记录数。

我不记得GeoServer是否已将其移植回1.0,但标准不支持它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.