Retorne apenas NumberOfFeatures em uma consulta WFS

11

Estou executando uma consulta GetFeature WFS no GeoServer (procurando recursos dentro de um polígono), mas tudo o que realmente quero é o número total de recursos. Existe uma maneira de retornar essas informações (na esperança de que a consulta seja executada um pouco mais rápido) em vez de todos os registros?

A consulta está retornando mais de 10.000 recursos, por isso espero que faça a diferença, se possível.

user8262
fonte

Respostas:

12

Você pode definir o parâmetro resultType como "hits" e obterá o número de recursos na consulta semelhante à função count () no SQL.

Exemplo de solicitação HTTP Get:

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

Exemplo de solicitação de postagem HTTP com um 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
fonte
Obrigado taudorf - que funcionou um prazer. Curiosamente, o tempo de pesquisa (executando a pesquisa diretamente no servidor geográfico) levou 18 segundos - em oposição a 41 segundos ao retornar apenas um campo por recurso.
precisa saber é o seguinte
5

Desde que você esteja usando o WFS 1.1, você pode definir resultype = hits e isso retornará apenas o número de registros correspondentes à sua consulta.

Não me lembro se o GeoServer já portou isso para 1.0, mas o padrão não é compatível.

Ian Turton
fonte