11

I'm running a GetFeature WFS query in GeoServer (looking for features within a polygon) but all I actually want is the total number of features. Is there a way of just returning this info (in the hope that the query will run a little faster) rather than all the records?

The query is returning over 10,000 features so I hope it would make a difference if possible.

12

You can set the parameter resultType to "hits" and you will get the number of features in the query similar to the count() function in SQL.

HTTP Get request example:

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

HTTP Post request example with a filter:

<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>
  • Thanks taudorf - that worked a treat. Interestingly, the search time (running the search directly in geoserver) took 18 seconds - as oppose to 41 seconds when returning just one field per feature. – user8262 Jan 7 '13 at 13:50
5

Provided you are using WFS 1.1 you can set resultype=hits and this will return just the number of records that match your query.

I can't recall if GeoServer has back ported this to 1.0 but the standard doesn't support it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.