11 votos

Sólo devuelve el NumberOfFeatures en una consulta WFS

Estoy ejecutando una consulta GetFeature WFS en GeoServer (buscando características dentro de un polígono) pero todo lo que quiero es el número total de características. ¿Hay alguna manera de devolver sólo 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, si es posible, se pueda hacer una diferencia.

13voto

Dan Wolchonok Puntos 953

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

Ejemplo de petición HTTP Get:

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

Ejemplo de petición 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>

0 votos

Gracias taudorf - eso funcionó de maravilla. Curiosamente, el tiempo de búsqueda (ejecutando la búsqueda directamente en geoserver) tardó 18 segundos, frente a los 41 segundos que tarda en devolver un solo campo por característica.

5voto

Adam Ernst Puntos 6939

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

No recuerdo si GeoServer ha vuelto a portar esto a la versión 1.0 pero el estándar no lo soporta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X