Zwracaj NumberOfFeatures tylko w zapytaniu WFS

11

Korzystam z zapytania GetFeature WFS w GeoServer (szukam funkcji w wielokącie), ale tak naprawdę chcę tylko całkowitej liczby funkcji. Czy istnieje sposób na zwrócenie tych informacji (w nadziei, że zapytanie uruchomi się nieco szybciej) zamiast wszystkich rekordów?

Kwerenda zwraca ponad 10 000 funkcji, więc mam nadzieję, że zmieniłoby to, jeśli to możliwe.

użytkownik8262
źródło

Odpowiedzi:

12

Możesz ustawić parametr resultType na „hits”, a otrzymasz liczbę funkcji w zapytaniu podobną do funkcji count () w SQL.

Przykład żądania HTTP Get:

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

Przykład żądania HTTP Post z filtrem:

<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
źródło
Dzięki taudorf - to działało. Co ciekawe, czas wyszukiwania (uruchomienie wyszukiwania bezpośrednio w geoserver) zajął 18 sekund - w przeciwieństwie do 41 sekund przy zwrocie tylko jednego pola na obiekt.
user8262
5

Pod warunkiem, że korzystasz z WFS 1.1, możesz ustawić resultype = hits, a to zwróci tylko liczbę rekordów pasujących do twojego zapytania.

Nie pamiętam, czy GeoServer przeportował to z powrotem na 1.0, ale standard tego nie obsługuje.

Ian Turton
źródło