Solo devuelve NumberOfFeatures en una consulta WFS

11

Estoy ejecutando una consulta GetFeature WFS en GeoServer (buscando características dentro de un polígono) pero todo lo que realmente quiero es la cantidad total de características. ¿Hay alguna forma de devolver esta información (con la esperanza de que la consulta se ejecute un poco más rápido) en lugar de todos los registros?

La consulta está devolviendo más de 10,000 características, así que espero que haga la diferencia si es posible.

usuario8262
fuente

Respuestas:

12

Puede establecer el parámetro resultType en "hits" y obtendrá el número de características en la consulta similar a la función count () en SQL.

Ejemplo de solicitud HTTP Get:

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

Ejemplo de solicitud HTTP Post con un filtro:

<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
fuente
Gracias taudorf, eso funcionó de maravilla. Curiosamente, el tiempo de búsqueda (ejecutar la búsqueda directamente en geoservidor) tomó 18 segundos, en lugar de 41 segundos al devolver solo un campo por función.
user8262
5

Siempre que esté utilizando WFS 1.1, puede establecer resultype = hits y esto devolverá solo el número de registros que coinciden con su consulta.

No recuerdo si GeoServer ha portado esto a 1.0 pero el estándar no lo admite.

Ian Turton
fuente