Geben Sie die NumberOfFeatures nur in einer WFS-Abfrage zurück


11

Ich führe eine GetFeature WFS-Abfrage in GeoServer aus (suche nach Features innerhalb eines Polygons), aber alles, was ich eigentlich möchte, ist die Gesamtzahl der Features. Gibt es eine Möglichkeit, nur diese Informationen zurückzugeben (in der Hoffnung, dass die Abfrage etwas schneller ausgeführt wird) und nicht alle Datensätze?

Die Abfrage gibt über 10.000 Funktionen zurück, daher hoffe ich, dass dies nach Möglichkeit einen Unterschied macht.

Antworten:


12

Sie können den Parameter resultType auf "Treffer" setzen und erhalten die Anzahl der Features in der Abfrage ähnlich der Funktion count () in SQL.

Beispiel für eine HTTP-Abrufanforderung:

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

Beispiel für eine HTTP-Post-Anfrage mit einem Filter:

<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>

Danke Taudorf - das hat geklappt. Interessanterweise dauerte die Suchzeit (die Suche direkt im Geoserver auszuführen) 18 Sekunden - im Gegensatz zu 41 Sekunden, wenn nur ein Feld pro Feature zurückgegeben wurde.
user8262

5

Vorausgesetzt, Sie verwenden WFS 1.1, können Sie resultype = Treffer festlegen. Dies gibt nur die Anzahl der Datensätze zurück, die Ihrer Abfrage entsprechen.

Ich kann mich nicht erinnern, ob GeoServer dies auf 1.0 zurückportiert hat, aber der Standard unterstützt es nicht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.