Запрос WFS GetFeature с параметром времени не фильтруется в геосервере

Я пытаюсь получить некоторые данные, отфильтрованные по дате в формате GML, используя WFS GetFeature в геосервере, но операция игнорирует параметр времени и просто возвращает огромный файл GML со всеми данными. Это запрос, который я использую:

http://localhost:8082/geoserver/it.geosolutions/ows?service=WFS&version=1.2.0&request=GetFeature&typeName=it.geosolutions:tsige&time=2011-07-25T00:00:00.0Z/2011-07-25T23:59:59.999Z

Согласно этому, параметр времени должен поддерживаться в операции WFS GetFeature, поэтому я не знаю, что неправильно. Кроме того, какие у меня есть альтернативы для получения данных, отфильтрованных по времени, в формате XML или JSON или в каком-либо другом удобном для анализа формате?


person santisan    schedule 02.06.2014    source источник


Ответы (1)


Не все реализации поставщиков поддерживают все параметры, что является одним из преимуществ работы со службами OGC. Также обратите внимание, что GeoServer реализует WFS 1.0.0, 1.1.0 и 2.0.0 (не 1.2.0 в приведенном выше примере).

Вы можете делать то, что хотите, с (относительно подробным) POST-запросом, используя фильтр OGC, это может работать с GET, но я оставлю это в качестве упражнения для читателя...

<wfs:GetFeature 
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:wfs="http://www.opengis.net/wfs"
  xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"
service="WFS" version="1.1.0" outputFormat="JSON">
  <wfs:Query typeName="it.geosolutions:tsige" srsName="EPSG:4326">
    <ogc:Filter>
      <ogc:And>
        <ogc:PropertyIsGreaterThanOrEqualTo>
          <ogc:PropertyName>your-time-variabe-here</ogc:PropertyName>
          <ogc:Function name="dateParse">
            <ogc:Literal>yyyy-MM-dd</ogc:Literal>
            <ogc:Literal>2011-07-25</ogc:Literal>
          </ogc:Function>
        </ogc:PropertyIsGreaterThanOrEqualTo>
        <ogc:PropertyIsLessThan>
          <ogc:PropertyName>your-time-variable-here</ogc:PropertyName>
          <ogc:Function name="dateParse">
            <ogc:Literal>yyyy-MM-dd</ogc:Literal>
            <ogc:Literal>2011-07-26</ogc:Literal>
          </ogc:Function>
        </ogc:PropertyIsLessThan>
      </ogc:And>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

Вы можете проверить это, используя curl с запросом, сохраненным как wfs.xml

curl -d @wfs.xml -H "Content-Type: application/xml" "http://localhost:8082/geoserver/it.geosolutions/ows"
person tom-kunicki    schedule 29.08.2014
comment
Вы можете использовать запрос GET, добавив такие параметры: ‹Литерал›гггг-ММ-дд‹/Литерал›‹Литерал›2014-12-31‹/Литерал›‹/Функция›‹/PropertyIsGreaterThanOrEqualTo› - person jjrv; 22.09.2015