WFSクエリでNumberOfFeaturesのみを返す


11

GeoServerでGetFeature WFSクエリを実行しています(ポリゴン内のフィーチャを探しています)が、実際に必要なのはフィーチャの総数だけです。すべてのレコードではなく、この情報を返す方法はありますか(クエリが少し速く実行されることを期待して)?

クエリは10,000を超える機能を返しているため、可能であれば違いが生じることを願っています。

回答:


12

パラメータresultTypeを「hits」に設定すると、SQLのcount()関数に似たクエリの機能の数を取得できます。

HTTP Getリクエストの例:

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

フィルターを使用したHTTP Post要求の例:

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

ありがとうタウドルフ-それは御treat走を働いた。興味深いことに、検索時間(ジオサーバーで直接検索を実行する)には18秒かかりました-フィーチャごとに1つのフィールドのみを返す場合の41秒とは対照的です。
user8262

5

WFS 1.1を使用している場合、resultype = hitsを設定できます。これにより、クエリに一致するレコードの数だけが返されます。

GeoServerがこれを1.0にバックポーティングしたかどうかは思い出せませんが、標準ではサポートされていません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.