Restituisce solo NumberOfFeatures in una query WFS


11

Sto eseguendo una query GetFeature WFS in GeoServer (alla ricerca di funzionalità all'interno di un poligono), ma tutto ciò che voglio effettivamente è il numero totale di funzionalità. Esiste un modo per restituire queste informazioni (nella speranza che la query venga eseguita un po 'più velocemente) piuttosto che tutti i record?

La query sta restituendo oltre 10.000 funzionalità, quindi spero che possa fare la differenza, se possibile.

Risposte:


12

Puoi impostare il parametro resultType su "hit" e otterrai il numero di funzionalità nella query simile alla funzione count () in SQL.

Esempio di richiesta HTTP Get:

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

Esempio di richiesta post HTTP 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>

Grazie Taudorf - ha funzionato a meraviglia. È interessante notare che il tempo di ricerca (eseguendo la ricerca direttamente nel geoserver) ha richiesto 18 secondi, invece di 41 secondi quando si restituisce solo un campo per funzione.
user8262

5

A condizione che tu stia utilizzando WFS 1.1, puoi impostare resultype = hit e questo restituirà solo il numero di record che corrispondono alla tua query.

Non riesco a ricordare se GeoServer ha eseguito il porting di questo su 1.0 ma lo standard non lo supporta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.