Страница 1 из 2
Вопрос по GeoServer+OpenLayers
Добавлено: 31 май 2011, 03:29
Kris
Подскажите как в OpenLayers реализовать вывод части данных из слоя GeoServer-а. Т.е. мне требуется вывести только несколько событий из этого слоя. Например произощедшие 15.11.1985.
Слой в GeoServer содержит события и их свойства(дату, координаты и др.).
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 31 май 2011, 14:48
Mavka
WMS или WFS?
Серверы WMS и фильтрация данных
Для WFS тоже фильтр пишется.
P.S. Модератору - перенесите топик в Веб-картографию
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 02 июн 2011, 07:45
Kris
Спасибо, попробую.
P.S. Модератору - не закрывайте пока тему.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 02 июн 2011, 17:10
givchik
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 07:04
Kris
Первый пример(
Серверы WMS и фильтрация данных) не помог.
А
второй не совсем понятен. Если я не ошибаюсь, на openlayers.org используется MapServer, а с GeoServer у меня не получилось получить аналогичный результат.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 07:07
Kris
Подскажите, что требуется для получения аналогичного результата для GeoServer и OpenLayers?
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 08:43
Kris
Здесь странный адрес расположения слоя "
http://mesonet.agron.iastate.edu/cgi-bi ... /n0r-t.cgi?". Аналогично в
этом примере в скрипте
wfs-filter.js.
Что располагается по этому адресу, как это работает, возможно ли использовать это для GeoServer?
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 09:09
Mavka
Там располагается CGI-впраппер сервера UMN MapServer (
тыц). Для этой программы создание врапперов очень распространено, тем более что версия 5.6 плохо работала с временнЫми заспросами и приходилось использовать небольшой хак.
В GeoServer поддержка спецификации WMS-T работает хорошо сама по себе.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 09:41
Kris
В
этом примере если я не ошибаюсь есть база, хранящая "атмосферные данные" которые по времени из формы получает OpenLayers. Это делается помощью картографического сервера (скорее всего MapServer) и
Mavka писал(а):CGI-впраппер сервера UMN MapServer .
.
Подскажите пожалуйста как тогда реализовать фильтр как в
этом примере, но только для GeoServer. Как правильно описать new OpenLayers.Layer, с каким доп. параметрами и что еще нужно дописать? Я не нашел другого примера показывающего как отразить не весь Layer, а не его часть.
Если можно напишите пример.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 10:14
Mavka
WMS-T - это обычный WMS с доп. параметрами. В OpenLayers делаете все как обычно, обратите внимание на параметр time:
Код: Выделить всё
ia_wms = new OpenLayers.Layer.WMS("Nexrad",
"http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r-t.cgi?",
{
layers: "nexrad-n0r-wmst",
transparent: true,
format: "image/png",
time: "2005-08-29T13:00:00Z"
}
);
Все сложности какие могут возникнуть содержатся в настройке сервера.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 10:22
Kris
Я пробовал подобное эффект нулевой
layer2 = new OpenLayers.Layer.WMS( "Каталог", "Адрес сервера/geoserver/wms/intranet_gen", {layers: 'catalog', transparent: 'true',date_year:"2004"});
Вываливается все сразу.
date_year это поле в моей таблице в базе.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 10:45
Mavka

Причем здесь date_year? В WMS-T есть только TIME, и формат даты должен быть соответствующий:
А если dimensional запросы, то они должны быть соответствующим образом настроены на сервере. Насколько я помню в GeoServer есть только TIME и ELEVATION.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 12:59
Kris
Значит для того чтоб сработал запрос TIME в таблице базы и в слое GeoSrver-а должно существовать поле time с содержанием 2004-10-12? И именно по нему и будет происходить поиск?
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 09 авг 2011, 13:21
Mavka
Интересно, зачем я вообще что то пишу? Ведь явно сказал: "Все сложности какие могут возникнуть содержатся в настройке сервера."
GeoServer
- Нужна самая свежая версия программы (nightly builds)
- Поле с датой может иметь любой название, но его тип должен быть Date - не только "год", но и месяц-день-пр. Кстати, не забудьте согласовать часовые пояса, а то день у вас будет начинаться и заканчиваться по Гринвичу.
- Открываете настройки слоя - появится новая закладка "Dimension"
- Включаете Time и выбираете поле
Если уж у вас неполноценная дата, то можете попробовать через Elevation.
Имхо, вся проблема в том, что вы не хотите прочитать статью, указанную в моем первом ответе. Не нужно придумывать dimensional WMS, а просто примените фильтр. Уж в GeoServer примитивный CQL делается на раз. И примеры использования в OpenLayers там тоже даны.
Re: Вопрос по GeoServer+OpenLayers
Добавлено: 24 авг 2011, 05:00
Kris
Mavka, спасибо за указание на CQL.