Как установить и настроить GeoServer
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.
Установка и запуск GeoServer
Поскольку GeoServer создан на основе Geotools - набора инструментов, написанных на Java, для его работы необходимо иметь установленный в системе Java Development Kit (JDK), версии не ниже 1.4
Для установки GeoServer (точнее, его бинарного дистрибутива) необходимо проделать следующие шаги (считается, что JDK уже установлен):
Скачать дистрибутив с сайта http://sourceforge.net/projects/geoserver
Распаковать дистрибутив в папку, которая будет считаться папкой установки GeoServer
Задать значение переменной окружения JAVA_HOME={каталог, в котором установлен JDK}
Задать значение переменной окружения GEOSERVER_HOME={каталог, в который распакован GeoServer}
Настройка и запуск GeoServer
Перейти в каталог, в который был распакован GeoServer, подкаталог /bin и запустить на выполнение файл startup.bat или startup.sh (в зависимости от того, работаете вы в Windows или UNIX).
Набрать в браузере адрес: http://localhost:8080/
Если все было установлено корректно, то по этой ссылке будут доступны административные утилиты, поставляемые с GeoServer. Более подробную информацию о настройке и запуске GeoServer можно найти на сайте GeoServer. См. также файл RUNNING.txt, поставляемый с дистрибутивом - там можно найти дополнительную информацию о процедуре инсталяции и различных проблемах, которые могут возникнуть в процессе установки.
Как корректно остановить GeoServer
Перейти в каталог, в который был распакован GeoServer, подкаталог /bin и запустить на выполнение файл shutdown.bat (Windows) или shutdown.sh (Unix). GeoServer будет остановлен.
Как опубликовать карту в Shape-формате (расширение shp) в интернете с помощью GeoServer
Начнем с простого: у вас имеется shape-файл и вы хотите создать на его основе слой, который будет доступен для работы через интернет. Для того, чтобы GeoServer мог начать транслировать ваши данные, нужно проделать две вещи: во-первых, скопировать данные в нужное место и, во-вторых, настроить метаданнные.
Вот краткое пошаговое описание, более подробно каждый пункт будет рассписан ниже:
- Копирование исходных данных
- Создание хранилища данных
- Создание нового типа объектов
- Настройка проекции
- Генерация ограничивающего прямоугольника (охвата).
- Сохранение настроек
- Просмотр данных при помощи утилит, поставляемых с GeoServer (Map Preview) или других клиентов
Копирование исходных данных
Скопируйте ваш shape-файл в папку с рабочими материалами [папка GeoServer]/data_dir/data/ (а еще лучше, создайте там папку test и положите в него ваш файл).
Для создания нового хранилища данных нужно:
Запустить GeoServer. В браузере набрать адрес: http://localhost:8080/
Кликнуть ссылку "Login". Ввести имя и пароль (по умолчанию username=admin и password=geoserver). Щелкнуть кнопку "Submit".
Теперь нужно указать GeoServer, какие данные будут добавлены, и где они хранятся. В меню слева переходим по ссылкам: Config/Data/Data Stores/New.
В открывшемся диалоге выбираем тип данных - Shapefile и вводим в строке Feature Data Set ID название по которому мы в последствии будет обращаться к нашим данным (например, tutorial). Нажать кнопку "New".
Указать нужный shape-файл: для этого следует записать его адрес (путь, относительно каталога data_dir) в строке "url". Например, если shape-файл tutorial.shp расположен в каталоге "C:/Program_Files/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", чтобы выйти из диалога.
Настройка картографической проекции в GeoServer
Первым делом убедитесь, что в каталоге с вашим shp-файлом хранится файл описанием его проекции (*.prj). Нажмите кнопку "Lookup SRS". Если файл с проекциями был найден GeoServer, то в строке src появится epsg-код проекции. Также можно ввести этот код самостоятельно (например, 4326 - широта/долгота) см. также документацию по настройке проекций в GeoServer.
Генерация ограничивающего прямоугольника
Для того, чтобы сгенерировать ограничивающий прямоугольник, достаточно кликнуть мышкой на кнопке "Generate". Затем нужно кликнуть кнопку "Submit".
Сохранение настроек GeoServer
Щелкните "Apply" и затем "Save".
Просмотр данных в Map Preview
Пришло время посмотреть, что же получилось. Самый простой способ это сделать - посмотреть все в Map Preview GeoServer. Для этого нужно последовательно нажать следующие ссылки: Demo/Map Preview. Появится список доступных карт. В этом списке щелкнуть мышью на ссылке "Preview" ("OpenLayers") около только что созданного слоя карты. Должно появиться новое окошко с картой.
Для просмотра карты также можно воспользоваться каким-либо WMS клиентом, например, QGIS, ArcGIS Explorer, ArcGIS, MapInfo, uDig и др (примеры использования WMS).
Оформление карты SLD
В этом разделе будет рассматриваться язык описания стилей - Styled Layer Descriptors (SLD). SLD - язык, основанный на языке XML, его открытая спецификация изложена в этом документе. Как и выше, все, что приводится в данном разделе представляет собой перевод документаци, доступной на этом сайте. По сути, SLD представляет из себя аналог AVL, способа описания стиля объекта, с которым он будет визуализироваться.
Что такое SLD — Styled Layer Descriptors
Создание простого описания:
Создадим текстовый файл (не очень важно в каком каталоге) и назовем его lines.sld. Скопируем в него следующий текст:
<?xml version="1.0" encoding="windows-1251"?>
Линия по умолчанию
Стиль границ по умолчанию
Пример стиля, который будет показывать зеленую линию
Rule 1
Зеленая линия
Зеленая линия толщиной в 2 пикселя
#319738
2
Наиболее интересная часть - раздел правил (Rule), в которой описывается как и что отрисовывать (раздел LineSymbolizer). В одном документе может быть несколько правил.
Подключение стиля SLD
Для подключения файла lines.sld нужно запустить GeoServer, зайти на страницу настройки стиля (нажимая последовательно ссылки Config/Data/Style). Выбрать ссылку "New". На появившейся странице ввести StyleID: lines, FileName: путь_к_файлу/lines.sld. Нажать Submit. Далее будет произведена проверка файла на корректность. Если все прошло хорошо (не появилось сообщение об ошибке), то нажать кнопку "Apply"
Использование стиля в GeoServer
На предыдущем шаге мы добавили свой стиль. Теперь требуется указать, что наши данные нужно показывать новым стилем.
Зайти на страницу настройки GeoServer (ссылки Config/Data/FeatureType), в строке Feature Types выбрать тип данных, к которому нужно применить созданный стиль. Нажать "Edit". На открывшейся странице в строке Style выбрать "lines" и нажать "Apply". Результат можно посмотреть через Demo/Map Preview или любым WMS клиентом.
Пишите отзывы о Geoserver
В данной статье рассмотрены азы использования GeoServer для публикаций в web картографических материалов. Не рассмотренными и даже не упомянутыми в статье остались такие возможности GeoServer, как подключение к GeoServer данных, представленных в форматах, отличных от shp или хранящихся в пространственных БД (PostGIS, Oracle, MySQL и др.). Не приведены примеры по настройке и использованию служб WFS и WCS, не рассмотрена встроеная в GeoServer система безопасности, защищающая публикуемые данные от несанкционированного доступа и изменения, а также многие другие аспекты. Тем не менее, данная статья, как мы надеемся, позволит читателю получить примерное представление об основных возможностях и приемах работы с GeoServer.
Конечно, мы планируем развивать это описание и добавлять описания новых аспектов работы с GeoServer по мере роста к нему интереса. Мы безусловно приветствуем и поддержим публикацию на нашем сайте и Ваших материалов и наработок по GeoServer.