GIS-LAB

Географические информационные системы и дистанционное зондирование

Начало работы с GeoServer

Описание начала работы с GeoServer, использующее материалы с официального сайта программы.

Обсудить в форуме Комментариев — 17

Введение

Также, как и MapServer, GeoServer является картографическим сервером с открытым исходным кодом, который среди многих прочих возможностей, реализует следующие спецификации OGS: WMS, WFS, WCS. Однако, в отличие от MapServer, GeoServer реализует спецификацию WFS-T (WFS-Transaction). Это означает, что используя GeoServer, вы можете не только получать данные для построения на их основе собственных карт, но также редактировать полученные данные с последующим автоматическим обновлением исходной информации на сервере. Среди поддерживаемых форматов значатся: JPEG, PNG, SVG, KML/KMZ, GML, PDF, ESRI Shapefile и другие.

Другой интересной особенностью, отличающей GeoServer от MapServer или FeatureServer (еще одного картографического сервера с открытым исходным кодом), является поставляемая с GeoServer визуальная система управления файлами настроек и описания данных для проектов GeoServer. Эта система реализована в виде веб-интерфейса и предоставляет пользователю возможность интерактивного создания и изменения разрабатываемого картографического ресурса. Мы не будем дискутировать здесь по поводу преимуществ и недостатков такого подхода, а просто отметим указанную особенность GeoServer.

Оглавление

  1. Установка
  2. Первые шаги: публикация shape-файла
  3. Оформление карты

1. Установка и запуск GeoServer

Поскольку GeoServer создан на основе Geotools - набора инструментов, написанных на Java, для его работы необходимо иметь установленный в системе Java Development Kit (JDK), версии не ниже 1.4

Для установки GeoServer (точнее, его бинарного дистрибутива) необходимо проделать следующие шаги (считается, что JDK уже установлен):

  1. Скачать дистрибутив с сайта http://sourceforge.net/projects/geoserver
  2. Распаковать дистрибутив в папку, которая будет считаться папкой установки GeoServer
  3. Задать значение переменной окружения JAVA_HOME={каталог, в котором установлен JDK}
  4. Задать значение переменной окружения GEOSERVER_HOME={каталог, в который распакован GeoServer}

Запуск GeoServer

Перейти в каталог, в который был распакован GeoServer, подкаталог /bin и запустить на выполнение файл startup.bat или startup.sh (в зависимости от того, работаете вы в Windows или UNIX).

Набрать в браузере адрес

http://localhost:8080/

Если все было установлено корректно, то по этой ссылке будут доступны административные утилиты, поставляемые с GeoServer. Более подробную информацию о настройке и запуске GeoServer можно найти на сайте GeoServer. См. также файл RUNNING.txt, поставляемый с дистрибутивом - там можно найти дополнительную информацию о процедуре инсталяции и различных проблемах, которые могут возникнуть в процессе установки.

Остановка GeoServer

Перейти в каталог, в который был распакован GeoServer, подкаталог /bin (например /usr/local/geoserver) и запустить на выполнение файл shutdown.bat (Windows) или shutdown.sh (Unix). GeoServer будет остановлен.

После первого запуска GeoServer рекомендуется изменить администраторский пароль в файле geoserver/data_dir/security/users.properties.

2. Первые шаги: публикация shp-файла

Подробное описание процедуры доступно по этой ссылке. На этот сайт стоит заглянуть хотя бы ради картинок - документация сопровождается последовательной серией снимков экрана, на которых показано какие кнопки и в какой последовательности нажимать. Ниже приводится выжимка из указанной документации.

Начнем с простого: у вас имеется shape-файл и вы хотите создать на его основе слой, который будет доступен для работы через интернет. Для того, чтобы GeoServer мог начать транслировать ваши данные, нужно проделать две вещи: во-первых, скопировать данные в нужное место и, во-вторых, настроить метаданные.

Вот краткое пошаговое описание, более подробно каждый пункт будет рассписан ниже:

  1. Копирование исходных данных
  2. Создание хранилища данных
  3. Создание нового типа объектов
  4. Настройка проекции
  5. Генерация ограничивающего прямоугольника (охвата).
  6. Сохранение настроек
  7. Просмотр данных при помощи утилит, поставляемых с GeoServer (Map Preview) или других клиентов.

Копирование исходных данных

Скопируйте ваш слой в shape-формате (test.shp, test.shx, test.dbf) в папку с рабочими материалами [папка GeoServer]/data_dir/data/ (а еще лучше, создайте там папку test и положите в него ваши данные).

Под Linux/FreeBSD GeoServer обычно устанавливается в папку с Tomcat, например такую:

/usr/local/apache-tomcat-6.0/webapps/geoserver/

Для создания нового хранилища данных нужно:

Запустить GeoServer. В браузере набрать адрес:

http://localhost:8080/

Кликнуть ссылку "Login". Ввести имя и пароль (по умолчанию username=admin и password=geoserver). Если вы изменили имя пароль, их нужно смотреть в файле users.properties, который обычно лежит в [папка GeoServer]/data/security/ Щелкнуть кнопку "Submit".

Теперь нужно указать GeoServer, какие данные будут добавлены, и где они хранятся. В меню слева переходим по ссылкам: Config/Data/Data Stores/New.

В открывшемся диалоге выбираем тип данных - Shapefile и вводим в строке Feature Data Set ID название по которому мы в последствии будет обращаться к нашим данным (например, tutorial). Нажать кнопку "New".

Указать нужный shape-файл: для этого следует записать его адрес (путь, относительно каталога data_dir) в строке "url". Например, если shape-файл tutorial.shp расположен в каталоге "[папка GeoServer]/data_dir/data/test/test.shp", тогда его следует указать в виде "file:data/test/test.shp". После этого нажать кнопку "Submit". (Не известно, с чем это связно, но при нажатии этой кнопки вылетает ошибка "java.lang.RuntimeException: selectedDataStoreId required in Session" до тех пор, пока не поменять кодировку файла, указываемую в строке настройки charset, на ISO-8859-1. Хотя, не исключено, что это попросту несчастный случай - возможно, в системе, на которой происходило тестирование GeoServer, что-то было не до конца установлено. Во всяком случае, других проблем в работе GeoServer замечено не было).

Создание нового типа объектов (FeatureType)

На этом этапе можно задать тип объекта (FeatureType), используемый для последующей настройки внешнего вида карты (см. документацию по спецификациям WMS и WFS). В терминологии WMS понятию FeatureType GeoServer соответствует термин "слой" (layer), настройка собственно слоев также производится в секции FeatureType.

Что такое FeatureType? Если коротко, то суть состоит в следующем: спецификация WFS отделяет сами данные от их представления, т.е. сначала должен быть описан абстрактный тип данных, к которому принадлежит некоторый объект (т.е должны быть указаны геометрический тип объекта и список атрибутов, которыми характеризуется этот объект). Кроме этого, создается также описание того, каким образом нужно отображать выделенный тип данных при построении карты, причем, для одного и того же типа данных может быть построено несколько разных представлений. Каждый объект должен быть отнесен к тому или иному типу данных. Таким образом, при отображении карты она фактически собирается из описаний объектов (их типов) и описаний представлений объектов. Но, как уже было сказано, в случае создания WMS службы вместо "FeatureType" более уместно употребление термина "слой".

Итак, зададим тип объекта, для этого переходим по ссылкам Data/FeatureTypes/New, попадаем в раздел FeatureType Editor (в некоторых версиях GeoServer переход сюда осуществляется автоматически сразу после создания нового хранилища данных). Находим раздел "стиль" ("Style") и нажимаем кнопку 'Create New SLD'. Появляется новый диалог, в котором нужно задать требуемые свойства (цвет текста, линий и т.п.). Нажимаем "Apply" чтобы посмотреть результаты или "Finished", чтобы выйти из диалога.

Настройка проекции

Первым делом убедитесь, что в каталоге с вашим shp-файлом хранится файл описанием его проекции (*.prj). Нажмите кнопку "Lookup SRS". Если файл с проекциями был найден GeoServer, то в строке src появится epsg-код проекции. Также можно ввести этот код самостоятельно (например, 4326 - широта/долгота) см. также документацию по настройке проекций в GeoServer.

Генерация ограничивающего прямоугольника

Для того, чтобы сгенерировать ограничивающий прямоугольник, достаточно кликнуть мышкой на кнопке "Generate". Затем нужно кликнуть кнопку "Submit".

Сохранение настроек

Щелкните "Apply" и затем "Save".

Просмотр данных в Map Preview

Пришло время посмотреть, что же получилось. Самый простой способ это сделать - посмотреть все в Map Preview GeoServer. Для этого нужно последовательно нажать следующие ссылки: Demo/Map Preview. Появится список доступных карт. В этом списке щелкнуть мышью на ссылке "Preview" ("OpenLayers") около только что созданного слоя карты. Должно появиться новое окошко с картой.

Для просмотра карты также можно воспользоваться каким-либо WMS клиентом, например, QGIS, ArcGIS Explorer, ArcGIS, MapInfo, uDig и др (примеры использования WMS).

3. Оформление карты

В этом разделе будет рассматриваться язык описания стилей - Styled Layer Descriptors (SLD). SLD - язык, основанный на языке XML, его открытая спецификация изложена в этом документе. Как и выше, все, что приводится в данном разделе представляет собой перевод документаци, доступной на этом сайте. По сути, SLD представляет из себя аналог AVL, способа описания стиля объекта, с которым он будет визуализироваться.

Основы SLD

Создание простого описания

Создадим текстовый файл (не очень важно в каком каталоге) и назовем его lines.sld. Скопируем в него следующий текст:

<?xml version="1.0" encoding="windows-1251"?>
<StyledLayerDescriptor version="1.0.0"
        xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
    xmlns="http://www.opengis.net/sld"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <NamedLayer>
                        <Name>Линия по умолчанию</Name>
                        <UserStyle>
                                <Title>Стиль границ по умолчанию</Title>
                                <Abstract>Пример стиля, который будет показывать зеленую линию</Abstract>
                                <FeatureTypeStyle>
                    <!-- Правило 1 -->
                                        <Rule>
                                        <Name>Rule 1</Name>
                                        <Title>Зеленая линия</Title>
                                        <Abstract>Зеленая линия толщиной в 2 пикселя</Abstract>
                    <LineSymbolizer>
                                                <Stroke>
                                                        <CssParameter name="stroke">#319738</CssParameter>
                                                        <CssParameter name="stroke-width">2</CssParameter>
                                                </Stroke>
                                        </LineSymbolizer>
                                        </Rule>
                                </FeatureTypeStyle>
                        </UserStyle>
                </NamedLayer>
        </StyledLayerDescriptor>

Наиболее интересная часть - раздел правил (Rule), в которой описывается как и что отрисовывать (раздел LineSymbolizer). В одном документе может быть несколько правил.

Подключение созданного стиля

Для подключения файла lines.sld нужно запустить GeoServer, зайти на страницу настройки стиля (нажимая последовательно ссылки Config/Data/Style). Выбрать ссылку "New". На появившейся странице ввести StyleID: lines, FileName: путь_к_файлу/lines.sld. Нажать Submit. Далее будет произведена проверка файла на корректность. Если все прошло хорошо (не появилось сообщение об ошибке), то нажать кнопку "Apply"

Использование стиля

На предыдущем шаге мы добавили свой стиль. Теперь требуется указать, что наши данные нужно показывать новым стилем.

Зайти на страницу настройки GeoServer (ссылки Config/Data/FeatureType), в строке Feature Types выбрать тип данных, к которому нужно применить созданный стиль. Нажать "Edit". На открывшейся странице в строке Style выбрать "lines" и нажать "Apply". Результат можно посмотреть через Demo/Map Preview или любым WMS клиентом.

Упростить процесс создания стилей можно с помощью GeoServer Styler.

Несколько заключительных слов

В данной статье рассмотрены азы использования GeoServer для публикаций в web картографических материалов. Не рассмотренными и даже не упомянутыми в статье остались такие возможности GeoServer, как подключение к GeoServer данных, представленных в форматах, отличных от shp или хранящихся в пространственных БД (PostGIS, Oracle, MySQL и др.). Не приведены примеры по настройке и использованию служб WFS и WCS, не рассмотрена встроеная в GeoServer система безопасности, защищающая публикуемые данные от несанкционированного доступа и изменения, а также многие другие аспекты. Тем не менее, данная статья, как мы надеемся, позволит читателю получить примерное представление об основных возможностях и приемах работы с GeoServer.

Конечно, мы планируем развивать это описание и добавлять описания новых аспектов работы с GeoServer по мере роста к нему интереса. Мы безусловно приветствуем и поддержим публикацию на нашем сайте и Ваших материалов и наработок по GeoServer.

Обсудить в форуме Комментариев — 17

Последнее обновление: September 09 2021

Дата создания: 04.04.2008
Автор(ы): Дмитрий Колесов