Создание простого ГИС-портала на OpenGeo: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
(Новая страница: «{{Статья|Черновик}} == Создание простого ГИС-портала на OpenGeo == <br /> Этот материал задуман ка…»)
 
(Отмена правки 11907, сделанной участником Филиппов Владислав (обс.))
 
(не показано 27 промежуточных версий этого же участника)
Строка 12: Строка 12:
* GeoExt - объединяет две JavaScript-библиотеки OpenLayers и ExtJS, для построения графического интерфейса пользователя в интернет браузере. [http://www.geoext.org/ оффсайт]
* GeoExt - объединяет две JavaScript-библиотеки OpenLayers и ExtJS, для построения графического интерфейса пользователя в интернет браузере. [http://www.geoext.org/ оффсайт]
<br />
<br />
OpenGeo Suite (далее ПО) объединяет в себе всё вышеперечисленное через удобный веб-интерфейс Dashboard, позволяющий запускать и настраивать каждый программный продукт, а так же содержит ссылки на документацию и примеры. Документации и примеры, наравне с популярностью входящих в ПО, - сильная сторона этого проекта!<br />
OpenGeo Suite (далее ПО) объединяет в себе всё вышеперечисленное через удобный веб-интерфейс Dashboard, позволяющий запускать и настраивать каждый программный продукт, а так же содержит ссылки на документацию и примеры. Документации и примеры, наравне с популярностью входящих в ПО модулей, - сильная сторона этого проекта!<br />
=== Обзор задачи ===
Более того, всё это собрано в один исталяционный пакет, который всё устанавливает и делает базовые настройки без участия пользователя. Инсталяторы есть для всех популярных операционных систем: Windows, Linux, MacOS X. Эта статья основана на версии ПО 3.0.1<br />
 
=== Обзор задач ===
# Постановка задачи для ГИС портала и установка
# Работа с СУБД.
# Работа с Geoserver.
# Работа по созданию графического интерфейса пользователя на GeoExt.
<br />
=== 1.Постановка задачи для ГИС портала и установка  ===
В качестве учебной задачи, выбрана задача создания веб-карты содержащей данные (шейп-файл admin.shp) из [http://gis-lab.info/qa/geosample.html '''Открытого набора геоданных Geosample''']. С точки зрения ГИС это полигональный слой с одним главным атрибутом - наименование региона РФ. Визуализация этих данных должна быть организована на основе этого атрибута.<br />
Данные должны хранится в СУБД, редактироваться через настольную ГИС и отображаться на веб-портале. Так же на веб-портале нужно организовать просмотр атрибутов.<br />
Рассматриваемый пример под MS Windows.<br />
Для продолжения работы необходимо установить свободно-распространяемую версию [http://opengeo.org/products/suite/community/ Community]. После того как инсталятор скачается необходимо запустить его и согласиться с его предложениями. После этого можно запустить Dashboard (Панель управления) из меню "Пуск".
[[Файл:Og_1_dash.png|800px|thumb|center|<center>Рис 1. Dashboard - Панель управления</center>]]<br />
<br />
Для запуска всех служб, обеспечивающих работу ПО, необходимо нажать на зелёную кнопку "Start" вверху Панели управления. После этого станут активны все ссылки для управления компонентами ПО.<br />
=== Работа с СУБД. ===
Первое, что нужно сделать, создать хранилище данных и в нашем случае это база данных под управлением PostgreSQL.<br />
PostgreSQL это СУБД - система управления базами данных, т.е. баз данных (БД), под управлением СУБД, может быть много. В нашем случае нужно создать свою собственную БД. БД создаются пользователями, в терминологии PostgreSQL '''ролями''', которые имеют соответствующее право - право создавать БД. Изначально, при установке СУБД PostgreSQL автоматически создаётся пользователь postgres, который имеет права '''суперпользователя'''. Он имеет права делать всё, со всеми объектами которыми управляет СУБД. Принято, что для каждой БД должен быть создан пользователь (роль), который будет выступать в качестве '''владельца''' создаваемой БД. <br />
Для этого нужно войти в приложение pgAdmin (Mange в Dashboard), подключиться к нашему локальному серверу (localhost) как пользователь postgres с паролем (если вы его не меняли) postgres. Далее выделить пункт, в дереве сервера, "Роли входа" и нажать правую клавишу мыши и выбрать "Новая роль...". Имя пользователя - student, пароль - student. Отметить привилегия роли как на Рис.2.
[[Файл:Create_role.png|800px|thumb|center|<center>Рис 2. Создание новой роли входа в PostgreSQL </center>]]<br />
<br />
Далее, создадим БД с именем student, указав, в качестве владельца, только что созданную роль student. Параметры БД нужно указать аналогично Рис.3<br />
Главное - использование шаблона "template_postgis". Он содержит всё необходимое для того чтобы использовать БД как пространственную БД, пригодную для хранения и обработки данных ГИС.<br />
<br />
[[Файл:Create_db.png|800px|thumb|center|<center>Рис 3. Создание новой базы данных в PostgreSQL </center>]]<br />
<br />
<br />
Теперь всё готово для загрузки пространственных данных в БД. Как было сказано выше, для примера используется набор данных Geosample. Он, помимо прочего, содержит шейп-файл (shape-file) "admin.shp" - это административно территориальное деление на территорию учебного набора Geosample.
На приведённых в этой статье рисунках указана система координат EPSG:3857, а "admin.shp" по-умолчанию имеет систему координат EPSG:4326. Можно изменить систему координат "admin.shp" в любой настольной ГИС на EPSG:3857, для полной аналогии с этим примером, хотя это и не обязательно.<br />
OpenGeo содержит инструмент импорта/экспорта шейп-файлов в БД - (Import shapefiles в Dashboard), которым следует воспользоваться, хотя подобные инструменты есть и другие, например как пагины для QGIS. В верхней части диалога инструмента Import shapefiles, содержится кнопка для указания параметров соединения с БД. Их необходимо заполнить как на Рис.4. Собственно, это уже известные параметры СУБД, параметры роли и имя базы.<br />
 
[[Файл:ImportShp1.png|800px|thumb|center|<center>Рис 4. Импорт шейп-файла. Настройки соединения </center>]]<br />
<br />
Далее, на закладке "Import" есть кнопка "Add File", которая необходима для добавления шейп-файлов, а в данном случае одного - "admin.shp". После добавления шейп-файла необходимо самостоятельно указать код системы координат в колонке SRID (2). И нажать на кнопку "Import" (3).
<br />
 
[[Файл:ImportShp2.png|800px|thumb|center|<center>Рис 5. Импорт шейп-файла. Добавление файла и установка системы координат. </center>]]<br />
<br />
В нижней части диалога появится сообщение о результате импорта.
<br />
 
[[Файл:ImportShp3.png|800px|thumb|center|<center>Рис 6. Импорт шейп-файла. Сообщения. </center>]]<br />
<br />
После этого можно, через программу pgAdmin, увидеть созданную таблицу в нашей БД. Она содержится в схеме public, данная схема доступна любым ролям СУБД, это не критично для учебного примера. Таблица имеет тоже название что и исходный шейп-файл, хотя имя таблицы можно изменять в диалоге Import shapefiles в колонке "Table" Рис.5.<br />
<br />
=== Работа с Geoserver ===
 
 
Дальнейшая работа будет происходить в геоинформационном сервере Geoserver. Для того чтобы начать работать необходимо открыть его страницу управления, т.к. управление Geoserver создано через веб-интерфейс. В Dashboard нажмите Configure напротив Geoserver. После этого откроется веб-браузер используемый по-умолчанию и веб-страница управления Geoserver.<br />
В верхней части есть текстовые поля для указания пользователя и его пароля для входа в Geoserver. По-умолчанию администратор Geoserver имеет имя admin и пароль geoserver (Рис.7). После входа буду доступны все настройки Geoserver, которые сгруппированы слева на странице упраления.
<br />
 
[[Файл:Geoserver1.png|800px|thumb|center|<center>Рис 7. Панель управления Geoserver'а. Браузер Chrome. </center>]]<br />
<br />
На первом этапе нужно создать Workspace - это логическая единица, которая будет составлять часть адреса URL. Worlspace можно сравнить с проектом настольных ГИС-программ.
<br />
[[Файл:Geoserver2.png|800px|thumb|center|<center>Рис 8. Добавление нового Workspace. </center>]]<br />
<br />
Для создания нового Workspace необходимо выбрать категорию "Workspace" слева страницы управления и нажать на кнопку с зелёным плюсом "Add new workspce". Далее ввести параметры как на Рис.9.
<br />
 
[[Файл:Geoserver3.png|800px|thumb|center|<center>Рис 9. Параметры нового Workspace. </center>]]<br />
<br />
Следующий этап - добавление Store. Это источник данных, которые делятся на 2 большие категории '''Векторные''' и '''Растровые''' источники, а так же WMS-сервис (каскадный источник с другого WMS-сервиса). В данном случае, векторный источник данных - БД PostGIS. Добавляется новый Store аналогично Workspace - кнопкой с зелёным плюсом в категории "Stores".
<br />
 
[[Файл:Geoserver4.png|800px|thumb|center|<center>Рис 10. Добавление нового Store. </center>]]<br />
<br />
Нужно ввести параметры нового Store - параметры подключения к БД (3) имя (2) и родительский Workspace (1). И максимальное число подключений (4). Для данного случая они приведены на Рис.11
<br />
 
[[Файл:Geoserver5.png|800px|thumb|center|<center>Рис 11. Параметры нового Store. </center>]]<br />
<br />
Последний этап - добавление слоя (или слоёв). Происходит аналогично добавлению новых Workspace и Store. Категория "Layers". <br />
Но, как написано на Рис.12, после успешного добавления нового Store, открывается страница с доступными из этого Store слоями, в данном случае с одним слоем - "admin_utf". Нужно нажать кнопку "Publish" для перехода к параметрам публикуемого слоя.
<br />
 
[[Файл:Geoserver6.png|800px|thumb|center|<center>Рис 12. Добавление нового Layer. </center>]]<br />
<br />
Параметр "Title" - наименование слоя, то как слой будет виден извне сервера.<br />
Кнопки '''2''' и '''3''' (Рис.13) извлекают из источника данных максимальный охват данных в системе координат самого источника (Native) и в долготе/широте (Lat/Lon). <br />
 
 
[[Файл:Geoserver7.png|800px|thumb|center|<center>Рис 13. Параметры нового Layer. </center>]]<br />
<br />
На закладке "Publishing", помимо прочего, настраивается стиль отображения и доступность слоя для запросов к нему. Рис.14.
<br />
 
[[Файл:Geoserver8.png|800px|thumb|center|<center>Рис 14. Дополнительные параметры нового Layer. </center>]]<br />
<br />
[[Файл:Geoserver9.png|800px|thumb|center|<center>Рис 15. Layer создан. </center>]]<br />
<br />
[[Файл:Geoserver10.png|800px|thumb|center|<center>Рис 16. Предварительный просмотр. </center>]]<br />
<br />
[[Файл:Geoserver12.png|800px|thumb|center|<center>Рис 17. Предварительный просмотр. </center>]]<br />
<br />
[[Файл:QGIS_Con1.png|800px|thumb|center|<center>Рис 18. Создание WFS-подключения в QGIS. </center>]]<br />
<br />
[[Файл:QGIS_Con2.png|800px|thumb|center|<center>Рис 19. Подключение к WFS в QGIS. </center>]]<br />
<br />
[[Файл:QGIS_Con3.png|800px|thumb|center|<center>Рис 20. WFS-слой в QGIS и условная визуализация. </center>]]<br />
<br />
[[Файл:StyleG1.png|800px|thumb|center|<center>Рис 21. SLD-стиль из QGIS в Geoserver. </center>]]<br />
<br />
[[Файл:StyleG2.png|800px|thumb|center|<center>Рис 22. Назначения SLD-стиля слою в Geoserver. </center>]]<br />
<br />
[[Файл:StyleG3.png|800px|thumb|center|<center>Рис 23. Результат использования стиля. </center>]]<br />
<br />

Текущая версия от 15:26, 11 апреля 2013

Эта страница является черновиком статьи.


Создание простого ГИС-портала на OpenGeo


Этот материал задуман как методические указания по курсу "Географические и земельноинформационные системы" для специальностей Землеустройство и Кадастр.

OpenGeo Suite оффсайт - геоинформационный веб-фреймворк для посторения ГИС-порталов.
Состоит из следующего стека приложений (открытых):

  • PostgreSQL/PostGIS - СУБД с библиотекой расширения, позволяющей хранить и обрабатывать в БД пространственные типы данных (geometry, geography)оффсайт.
  • Geoserver - Геоинформационный веб-сервер. оффсайт
  • GeoWeb Cache - кэшировшик тайлов WMS необходимый для ускорения работы с часто используемыми данными. оффсайт
  • OpenLayers - JavaScript-библиотека для отображения геоинформационной информации. оффсайт
  • GeoExt - объединяет две JavaScript-библиотеки OpenLayers и ExtJS, для построения графического интерфейса пользователя в интернет браузере. оффсайт


OpenGeo Suite (далее ПО) объединяет в себе всё вышеперечисленное через удобный веб-интерфейс Dashboard, позволяющий запускать и настраивать каждый программный продукт, а так же содержит ссылки на документацию и примеры. Документации и примеры, наравне с популярностью входящих в ПО модулей, - сильная сторона этого проекта!
Более того, всё это собрано в один исталяционный пакет, который всё устанавливает и делает базовые настройки без участия пользователя. Инсталяторы есть для всех популярных операционных систем: Windows, Linux, MacOS X. Эта статья основана на версии ПО 3.0.1

Обзор задач

  1. Постановка задачи для ГИС портала и установка
  2. Работа с СУБД.
  3. Работа с Geoserver.
  4. Работа по созданию графического интерфейса пользователя на GeoExt.


1.Постановка задачи для ГИС портала и установка

В качестве учебной задачи, выбрана задача создания веб-карты содержащей данные (шейп-файл admin.shp) из Открытого набора геоданных Geosample. С точки зрения ГИС это полигональный слой с одним главным атрибутом - наименование региона РФ. Визуализация этих данных должна быть организована на основе этого атрибута.
Данные должны хранится в СУБД, редактироваться через настольную ГИС и отображаться на веб-портале. Так же на веб-портале нужно организовать просмотр атрибутов.
Рассматриваемый пример под MS Windows.
Для продолжения работы необходимо установить свободно-распространяемую версию Community. После того как инсталятор скачается необходимо запустить его и согласиться с его предложениями. После этого можно запустить Dashboard (Панель управления) из меню "Пуск".

Рис 1. Dashboard - Панель управления



Для запуска всех служб, обеспечивающих работу ПО, необходимо нажать на зелёную кнопку "Start" вверху Панели управления. После этого станут активны все ссылки для управления компонентами ПО.

Работа с СУБД.

Первое, что нужно сделать, создать хранилище данных и в нашем случае это база данных под управлением PostgreSQL.
PostgreSQL это СУБД - система управления базами данных, т.е. баз данных (БД), под управлением СУБД, может быть много. В нашем случае нужно создать свою собственную БД. БД создаются пользователями, в терминологии PostgreSQL ролями, которые имеют соответствующее право - право создавать БД. Изначально, при установке СУБД PostgreSQL автоматически создаётся пользователь postgres, который имеет права суперпользователя. Он имеет права делать всё, со всеми объектами которыми управляет СУБД. Принято, что для каждой БД должен быть создан пользователь (роль), который будет выступать в качестве владельца создаваемой БД.
Для этого нужно войти в приложение pgAdmin (Mange в Dashboard), подключиться к нашему локальному серверу (localhost) как пользователь postgres с паролем (если вы его не меняли) postgres. Далее выделить пункт, в дереве сервера, "Роли входа" и нажать правую клавишу мыши и выбрать "Новая роль...". Имя пользователя - student, пароль - student. Отметить привилегия роли как на Рис.2.

Рис 2. Создание новой роли входа в PostgreSQL



Далее, создадим БД с именем student, указав, в качестве владельца, только что созданную роль student. Параметры БД нужно указать аналогично Рис.3
Главное - использование шаблона "template_postgis". Он содержит всё необходимое для того чтобы использовать БД как пространственную БД, пригодную для хранения и обработки данных ГИС.

Рис 3. Создание новой базы данных в PostgreSQL




Теперь всё готово для загрузки пространственных данных в БД. Как было сказано выше, для примера используется набор данных Geosample. Он, помимо прочего, содержит шейп-файл (shape-file) "admin.shp" - это административно территориальное деление на территорию учебного набора Geosample. На приведённых в этой статье рисунках указана система координат EPSG:3857, а "admin.shp" по-умолчанию имеет систему координат EPSG:4326. Можно изменить систему координат "admin.shp" в любой настольной ГИС на EPSG:3857, для полной аналогии с этим примером, хотя это и не обязательно.
OpenGeo содержит инструмент импорта/экспорта шейп-файлов в БД - (Import shapefiles в Dashboard), которым следует воспользоваться, хотя подобные инструменты есть и другие, например как пагины для QGIS. В верхней части диалога инструмента Import shapefiles, содержится кнопка для указания параметров соединения с БД. Их необходимо заполнить как на Рис.4. Собственно, это уже известные параметры СУБД, параметры роли и имя базы.

Рис 4. Импорт шейп-файла. Настройки соединения



Далее, на закладке "Import" есть кнопка "Add File", которая необходима для добавления шейп-файлов, а в данном случае одного - "admin.shp". После добавления шейп-файла необходимо самостоятельно указать код системы координат в колонке SRID (2). И нажать на кнопку "Import" (3).

Рис 5. Импорт шейп-файла. Добавление файла и установка системы координат.



В нижней части диалога появится сообщение о результате импорта.

Рис 6. Импорт шейп-файла. Сообщения.



После этого можно, через программу pgAdmin, увидеть созданную таблицу в нашей БД. Она содержится в схеме public, данная схема доступна любым ролям СУБД, это не критично для учебного примера. Таблица имеет тоже название что и исходный шейп-файл, хотя имя таблицы можно изменять в диалоге Import shapefiles в колонке "Table" Рис.5.

Работа с Geoserver

Дальнейшая работа будет происходить в геоинформационном сервере Geoserver. Для того чтобы начать работать необходимо открыть его страницу управления, т.к. управление Geoserver создано через веб-интерфейс. В Dashboard нажмите Configure напротив Geoserver. После этого откроется веб-браузер используемый по-умолчанию и веб-страница управления Geoserver.
В верхней части есть текстовые поля для указания пользователя и его пароля для входа в Geoserver. По-умолчанию администратор Geoserver имеет имя admin и пароль geoserver (Рис.7). После входа буду доступны все настройки Geoserver, которые сгруппированы слева на странице упраления.

Рис 7. Панель управления Geoserver'а. Браузер Chrome.



На первом этапе нужно создать Workspace - это логическая единица, которая будет составлять часть адреса URL. Worlspace можно сравнить с проектом настольных ГИС-программ.

Рис 8. Добавление нового Workspace.



Для создания нового Workspace необходимо выбрать категорию "Workspace" слева страницы управления и нажать на кнопку с зелёным плюсом "Add new workspce". Далее ввести параметры как на Рис.9.

Рис 9. Параметры нового Workspace.



Следующий этап - добавление Store. Это источник данных, которые делятся на 2 большие категории Векторные и Растровые источники, а так же WMS-сервис (каскадный источник с другого WMS-сервиса). В данном случае, векторный источник данных - БД PostGIS. Добавляется новый Store аналогично Workspace - кнопкой с зелёным плюсом в категории "Stores".

Рис 10. Добавление нового Store.



Нужно ввести параметры нового Store - параметры подключения к БД (3) имя (2) и родительский Workspace (1). И максимальное число подключений (4). Для данного случая они приведены на Рис.11

Рис 11. Параметры нового Store.



Последний этап - добавление слоя (или слоёв). Происходит аналогично добавлению новых Workspace и Store. Категория "Layers".
Но, как написано на Рис.12, после успешного добавления нового Store, открывается страница с доступными из этого Store слоями, в данном случае с одним слоем - "admin_utf". Нужно нажать кнопку "Publish" для перехода к параметрам публикуемого слоя.

Рис 12. Добавление нового Layer.



Параметр "Title" - наименование слоя, то как слой будет виден извне сервера.
Кнопки 2 и 3 (Рис.13) извлекают из источника данных максимальный охват данных в системе координат самого источника (Native) и в долготе/широте (Lat/Lon).


Рис 13. Параметры нового Layer.



На закладке "Publishing", помимо прочего, настраивается стиль отображения и доступность слоя для запросов к нему. Рис.14.

Рис 14. Дополнительные параметры нового Layer.



Рис 15. Layer создан.



Рис 16. Предварительный просмотр.



Рис 17. Предварительный просмотр.



Рис 18. Создание WFS-подключения в QGIS.



Рис 19. Подключение к WFS в QGIS.



Рис 20. WFS-слой в QGIS и условная визуализация.



Рис 21. SLD-стиль из QGIS в Geoserver.



Рис 22. Назначения SLD-стиля слою в Geoserver.



Рис 23. Результат использования стиля.