Chỉ trả về NumberOfFeatures trong truy vấn WFS


11

Tôi đang chạy truy vấn WFS GetFeature trong GeoServer (tìm kiếm các tính năng trong đa giác) nhưng tất cả những gì tôi thực sự muốn là tổng số tính năng. Có cách nào để trả về thông tin này (với hy vọng rằng truy vấn sẽ chạy nhanh hơn một chút) chứ không phải tất cả các bản ghi?

Truy vấn đang trả về hơn 10.000 tính năng vì vậy tôi hy vọng nó sẽ tạo ra sự khác biệt nếu có thể.

Câu trả lời:


12

Bạn có thể đặt tham số resultType thành "lần truy cập" và bạn sẽ nhận được số lượng tính năng trong truy vấn tương tự như hàm Count () trong SQL.

Ví dụ nhận yêu cầu HTTP:

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

Ví dụ yêu cầu bài viết HTTP với một bộ lọc:

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

Cảm ơn taudorf - đã làm việc một điều trị. Điều thú vị là thời gian tìm kiếm (chạy tìm kiếm trực tiếp trong máy chủ địa lý) mất 18 giây - trái ngược với 41 giây khi chỉ trả lại một trường cho mỗi tính năng.
dùng8262

5

Với điều kiện bạn đang sử dụng WFS 1.1, bạn có thể đặt resultype = lượt truy cập và điều này sẽ chỉ trả về số lượng bản ghi khớp với truy vấn của bạn.

Tôi không thể nhớ lại nếu GeoServer đã chuyển lại thành 1.0 nhưng tiêu chuẩn không hỗ trợ nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.