Картографический сервис на OpenSource - доступная картография каждому
LVEE 2017
— Где карта, Билли? Нам нужна карта…
— Какая карта?! У меня нет никакой карты!
— Где карта?!
(мультфильм “Остров сокровищ”, 1988)
Введение.
В современном мире геоинформационные технологии повседневно присутствуют в жизни как персонально каждого человека, так и компаний в целом. Это навигационные системы, системы мониторинга транспорта и многоликие программы и приложения, использующие отображение пространственной информации на картографической основе.
Современность как период — это эра коммерческого развития ГИС (геоинформационных систем), расширение области их применения за счет интеграции с СУБД, появление сетевых приложений — и все это открыло путь системам, поддерживающим корпоративные и распределенные базы геоданных. Это стало толчком к развитию не только комерческих геоинформационных систем, но и свободно распространяемых продуктов.
Постановка задачи.
В одной «мифической» компании как-то заметили, что хотя в названии у них есть слово геоинформационные технологии, но услуг, да и собственно геоинформационных технологий, нет. Руководители компании нашли на стороне инженеров и поставили задачу реализовать собственную геоинформационную систему (ГИС) на свободно-распространяемом программном обеспечении, не ввязываясь в дорогостоящий процесс собственно разработки продукта.
Функционал решения должен включать:
- возможность развития системы как продукта
- возможность интеграции решения в существующие собственные программные комплексы организации
- возможность публиковать собственные карты и картографические основы
- возможность реализовывать слои на картографической основе
- система должна быть проста в эксплуатации, дабы не содержать дорогостоящий персонал, для использования функционала продукта и в случае продажи не услуги, а собственно программного решения, то есть ГИС.
Выбор решения.
Проведя анализ предлагаемых ГИС-платформ на проприетарной основе и определившись с тем, что бы хотелось получить в итоге, мы принялись за работу.
Что понадобиться?
Картографическая основа. По причине отсутствия финансирования, а также из-за запрета эксплуатировать покупные карты, мы остановились на использовании собственного тайлового сервера, на картографической основе OSM (openstreetmap) 7. Популярность данной картографической подложки обусловлена, во-первых, политикой предоставления тайлов, позволяющей любому желающему свободно использовать тайлы OpenStreetMap или иных картографических основ, разработанных на базе OSM в своих приложениях, а во-вторых, простотой их подключения в современных веб-клиентах, таких как Leaflet и OpenLayers.
Использование собственного сервера карт было обусловлено необходимостью наличия картографической подложки при отсутствии доступа в общедоступным картам OSM, Яндекс Народная и т.п. Это позволяет, в случае необходимости реализовать проект без привязки к стороннему сервису картографической основы. В отдельных случаях вместо картографической основы можно использовать shape-слой, созданный на основе картографической основы.
В качестве решения для создания печатных карт, а так же слоев пространственных данных, был выбран программный продукт QGIS 1 (распространяемый по лицензии GNU General Public License) – как унифицированное решение с большим сообществом и соответственно поддержкой разносторонних модулей и мультиплатформенной архитектурой.
Серверов публикации данных было проанализировано несколько:
- MapServer (на данный момент наверное самый популярный вариант сервера для публикации пространственных данных — карт).
- QGIS Web Server (рассматривался исключительно из за высокого уровня совместимости с продуктом QGIS)
- NEXTGIS Web Server (Данное решение, было найдено случайно и как результат позволило получить максимальный результат)
По результатам изучения данного направления, был сделан выбор в пользу продукта от российской компании NEXTGIS: это обусловлено как распространением их решения по лицензии GNU GPL, так и тем, что они (собрав все описанные выше продукты) реализовали довольно интересный и функциональный продукт в “коробочном” исполнении, доступный для освоения обычным пользователям 4. Также подкупило наличие мобильных приложений (клиентов) для редактирования существующих слоев на веб-сервере и управления сервером с находясь “в поле”.
Что же касается QGIS Web Server 5, данное программное решение довольно простое в эксплуатации, но позволяет публиковать данные как демонстрацию слоя и карты, без конечного взаимодействия с объектами нанесенными на картографическую основу, что само по себе конечно уже много, но недостаточно для реализации поставленной задачи.
Отдельно хочется отметить продукт MapServer, так как он оказался структурообразующим продуктом и по сути присутствует в каждом из описанных выше решений. Это более чем гибкое решение для публикации пространственных данных на картографической основе, но реализация на нем слоев требует дополнительных знаний от конечного пользователя.
Пример создания mapfile для MapServer и слоя.
MAP NAME "sample" STATUS ON SIZE 600 400 SYMBOLSET "../etc/symbols.txt" EXTENT -180 -90 180 90 UNITS DD SHAPEPATH "../data" IMAGECOLOR 255 255 255 FONTSET "../etc/fonts.txt"
# # Start of web interface definition # WEB IMAGEPATH "/ms4w/tmp/ms_tmp/" IMAGEURL "/ms_tmp/" END # WEB
# # Start of layer definitions # LAYER NAME 'global-raster TYPE RASTER STATUS DEFAULT DATA bluemarble.gif END # LAYER END # MAP
Для хранения пространственных данных большинство рассматриваемых свободно распространяемых продуктов использует СУБД PostgreSQL 8, а точнее, надстройку над СУБД – PostGIS 9, позволяющую хранить в себе пространственные данные (точки, полигоны, линии и некоторые графические объекты).
Опыт использования в реальном проекте.
- Реализации проекта по созданию онлайн-ГИС для размещения культурных и туристических объектов Беларуси на картографической основе, доступной всем.
- Отображение на картографической основе информации о работе светофоров с динамическим изменением стилистики отображаемого слоя.
- Отображение на картографической основе зон отношения к определенному гос. учреждению (милиция, поликлиника, ЖЭС и т.д.v1)
Подытожив, хочется воспользоваться цитатой из киносерии про пирата Джека Воробья:
– Да, раньше этот мир был куда больше…
– Нет, мир остался прежним. Стало меньше содержимого.
Источники:
1 Официальный портал продукта QGIS – qgis.org
2 Проект QGIS на гитхабе – github.com/qgis/QGIS
3 Веб-клиент для работы с QGIS – github.com/qgis/QGIS-Web-Client
4 Сайт продукта NEXTGISQGIS – nextgis.ru/nextgis-qgis
5 Реализация QGIS WEB Server – live.osgeo.org/ru/quickstart/qgis_mapserver_quickstart.html
6 GIS-Lab — неформальное сообщество специалистов в области ГИС и ДЗЗ – gis-lab.info
7 Ресурс картографической основы – http://www.openstreetmap.org
8 СУБД – postgresql.org
9 Расширение для базы данных PostgreSQL – postgis.net
10 Проект NEXTGIS на гитхабе – github.com/nextgis
11 Сайт продукта NEXTGIS – nextgis.ru
12 Проект NEXTGISWEB на гитхабе – github.com/nextgis/nextgisweb
13 Интеграция публикации стилей слоев QGIS на NEXTGISWEB – github.com/nextgis/nextgisweb_qgis
Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license
Назад