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.

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>

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.