Страница 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
В примерах есть вот это
http://openlayers.org/dev/examples/wmst.html

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
:shock: Причем здесь date_year? В WMS-T есть только TIME, и формат даты должен быть соответствующий:

Код: Выделить всё

&TIME=2004-10-12/2004-10-13
А если 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
  1. Нужна самая свежая версия программы (nightly builds)
  2. Поле с датой может иметь любой название, но его тип должен быть Date - не только "год", но и месяц-день-пр. Кстати, не забудьте согласовать часовые пояса, а то день у вас будет начинаться и заканчиваться по Гринвичу.
  3. Открываете настройки слоя - появится новая закладка "Dimension"
  4. Включаете Time и выбираете поле
Если уж у вас неполноценная дата, то можете попробовать через Elevation.

Имхо, вся проблема в том, что вы не хотите прочитать статью, указанную в моем первом ответе. Не нужно придумывать dimensional WMS, а просто примените фильтр. Уж в GeoServer примитивный CQL делается на раз. И примеры использования в OpenLayers там тоже даны.

Re: Вопрос по GeoServer+OpenLayers

Добавлено: 24 авг 2011, 05:00
Kris
Mavka, спасибо за указание на CQL.