2015-07-23 6 views
1

У меня есть уровень WMS, который подается от Geoserver. Этот слой предоставляет свойство даты, которое хранится в базе данных как тип даты. Я хотел бы отфильтровать слой по дате. Например: cql_filter = date> 2015-07-01T00: 00: 00.000Z.Фильтр WMS по дате

У меня трудное время заставить это работать и не в состоянии найти какие-либо рабочие примеры.

Есть ли у кого-нибудь рабочий пример диапазона CQL? Или примеры диапазона дат фильтра?

Спасибо,

Натан

+0

, какие базы данных Ваши данные в? –

ответ

1

Эта ссылка имеет некоторые примеры.

Intro to CQL

Одна вещь, которую я столкнулся с CQL является чувствительность к регистру и поле присвоения имен. В вашем примере вы указываете date как поле. Может быть, date является зарезервированным словом? Попытайтесь поднять ваш журнал на геосервере и проверьте наличие ошибок или посмотрите, что генерируется SQL. Дважды проверьте имя поля в определении слоя.

+0

Спасибо за ссылку. –

1

В моем вопросе были заданы некоторые рабочие примеры, и ответ Джейсона был предоставлен именно так.

Ниже приведены некоторые рабочие примеры, которые фильтруют 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>' 
});