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.

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>

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.