Повертайте лише NumberOfFeatures у WFS-запиті


11

Я запускаю запит на GetFeature WFS в GeoServer (шукаю функції в полігоні), але все, що я насправді хочу, - це загальна кількість функцій. Чи існує спосіб просто повернути цю інформацію (сподіваючись, що запит запуститься трохи швидше), а не всі записи?

Запит повертає понад 10 000 функцій, тому я сподіваюся, що це змінить, якщо це можливо.

Відповіді:


12

Ви можете встановити параметр resultType на "хіти", і ви отримаєте кількість функцій запиту, аналогічну функції count () у SQL.

HTTP Отримайте приклад запиту:

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

Приклад запиту HTTP-повідомлення з фільтром:

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

Дякую таудорфу - що спрацювало частування. Цікаво, що час пошуку (запуск пошуку безпосередньо в геосервері) зайняв 18 секунд - на противагу 41 секунді при поверненні лише одного поля за функцією.
користувач8262

5

Якщо ви використовуєте WFS 1.1, ви можете встановити resultype = хіти, і це поверне лише кількість записів, які відповідають вашому запиту.

Я не можу згадати, чи GeoServer переніс це на 1.0, але стандарт не підтримує його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.