WMS按日期过滤

时间:2015-07-23 17:01:28

标签: leaflet cql geoserver wms

我从Geoserver获得了WMS图层。该层公开了一个日期属性,该属性作为Date类型存储在数据库中。我想按日期范围过滤图层。例如:cql_filter = date> 2015-07-01T00:00:00.000Z。

我很难让这个工作起来,而且找不到任何有用的例子。

是否有人有一个有效的CQL日期范围示例?或过滤日期范围示例?

谢谢,

内森

2 个答案:

答案 0 :(得分:1)

此链接有一些示例。

Intro to CQL

我在CQL中遇到的一件事是区分大小写和字段命名。在您的示例中,您将date作为字段引用。也许date是保留字?尝试提高您在geoserver中的日志记录并检查错误或查看生成的SQL。仔细检查图层定义中的字段名称。

答案 1 :(得分:1)

我的问题要求提供一些有用的例子,Jason的答案就是这样提供的。

下面是一些使用小册子按日期过滤WMS的工作示例。

CQL示例

var layer = L.tileLayer.wms('http://myWMSUrl', {
  layers: 'namespace:layer',
  format: 'image/png',
  transparent: true,
  version: '1.1.1',
  cql_filter: 'date AFTER 2015-07-01T00:00:00Z AND date BEFORE 2015-07-01T00:00:00Z'
});

过滤XML示例

var layer = L.tileLayer.wms('http://myWMSUrl', {
  layers: 'namespace:layer',
  format: 'image/png',
  transparent: true,
  version: '1.1.1',
  filter: '<PropertyIsGreaterThan><PropertyName>date</PropertyName><Function name="dateParse"><Literal>yyyy-MM-dd</Literal><Literal>2015-07-01</Literal><Function></PropertyIsGreaterThan>'
});