Yalnızca bir WFS sorgusundaki NumberOfFeatures döndür


11

GeoServer (çokgen içinde özellikler arıyor) GetFeature WFS sorgusu çalıştırıyorum ama aslında tüm istediğim özelliklerin toplam sayısıdır. Tüm kayıtlardan ziyade bu bilgiyi (sorgunun biraz daha hızlı çalışmasını umuyoruz) döndürmenin bir yolu var mı?

Mümkünse bir fark yaratacağını umuyoruz sorgu 10.000 özellikleri üzerinde dönüyor.

Yanıtlar:


12

ResultsType parametresini "hits" olarak ayarlayabilirsiniz ve sorgudaki özelliklerin sayısını SQL'deki count () işlevine benzer şekilde alırsınız.

HTTP Alma isteği örneği:

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

Filtreli HTTP Post istek örneği:

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

Teşekkürler taudorf - bir tedavi çalıştı. İlginç bir şekilde, arama süresi (aramayı doğrudan geoserver'da yürütmek), özellik başına yalnızca bir alan döndürürken 41 saniyenin aksine, 18 saniye sürdü.
user8262

5

WFS 1.1 kullanmanız koşuluyla resultype = hits ayarlayabilirsiniz ve bu yalnızca sorgunuzla eşleşen kayıt sayısını döndürür.

GeoServer'ın 1.0'a geri taşındığını ancak standartın bunu desteklemediğini hatırlayamıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.