Быстрая разработка Веб ГИС приложений на базе библиотек NextGIS Frontend

Друзья, рады сообщить о запуске нового способа взаимодействия с сервисами и продуктами NextGIS — облачной Веб ГИС nextgis.com, серверным решением NextGIS Web и каталогом QuickMapServices!

Как вы могли отметить, в прошлые годы мы были сосредоточены на ПО для конечных пользователей, эта новость — для разработчиков. Мы представляем новый комплекс браузерных JavaScript-библиотек, позволяющих быстро создавать свои приложения, используя ресурсы, предоставляемые нашей серверной частью.

Введение

Главное назначение библиотек – упрощение подключения к ресурсам nextgis.com/NextGIS Web и управления ими через интерфейс специализированных библиотек; обеспечение удобства разработки Веб ГИС приложений разного уровня сложности.

Рис.1. Пример — минимум JS-кода для создания интерактивной карты, включающей: 1) загруженные слои из ранее созданной в Веб ГИС карты, и 2) картографическую подложку из каталога QMS (посмотреть пример в действии)

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

Основные возможности:

  • простота в использовании (см. Рис. 1);
  • один интерфейс для разных картографических фреймворков (Leaflet, OpenLayers, Mapbox GL JS);
  • оптимизация выполнения самых распространенных операций для веб-карт;
  • данные из разных сервисов NextGIS в одном месте;
  • удобный способ распространения (CDN, npm, git).

Сборки и модули

Всего на данный момент существует 14 библиотек, которые можно разделить на сборки и модули (Рис. 2).

Сборка (package) – это библиотека, реализующая простой механизм для создания карт. Может объединять в себе несколько модулей и библиотек сторонних разработчиков, т.е. сборка готова к использованию без установки дополнительных зависимостей. Может включать скрипты, стили и картинки – всё это распространяется в одном файле, который подключается через CDN или другим удобным способом.

К сборкам относятся библиотеки:

  1. ngw-leaflet, ngw-ol и ngw-mapbox – сборки для трех основных open-source веб гис фреймворков с единым интерфейсом взаимодействия и простыми методами управления ресурсами NGW.
  2. ngw-connector — формирует запросы к API NGW, позволяет авторизоваться  пользователю по своим учётным данным. Данная библиотека не содержит связи с картой, оперирует только данными.
  3. ngw-uploader — загружает данные, создает ресурсы, слои, стили и формирует сервисы на nextgis.com/NextGIS Web.

Модуль (module) – “строительный материал”, подготовленный для импортирования в приложения с настроенным механизмом сборки, например, через Webpack. Поддерживает типизацию TypeScript.

Имеющиеся модули:

  1. webmap – базовый модуль, является абстрактным представлением карты, её слоёв и состояния. Не имеет зависимостей и не связан с сервисами NextGIS.
  2. адаптеры leaflet-map-adapter, ol-map-adapter и mapboxgl-map-adapter – обеспечивают единый интерфейс управления различными картографическими фреймворками через webmap.
  3. ngw-map – почти то же самое что и webmap, только с настроенным взаимодействием с сервисами NextGIS. Позволяет решать самые распространённые задачи веб-карт с минимумом кода.
  4. Интерфейсы взаимодействия с внешними сервисами ngw-kit и qms-kit – способ расширения webmap для интеграции:
    1. с облаком nextgis.com для загрузки ресурсов и проектов карт;
    2. c QuickMapServices для быстрого добавления подложек из каталога.
  5. icons – набор настраиваемых svg-иконок для стилизации отображения точечных данных на карте (пока только для leaflet-map-adapter).
  6. dialog – модуль для работы с модальными окнами, авторизаций и т.п.

Рис. 2. Схема основных зависимостей между библиотеками фронтенда NextGIS.

Примеры

По адресу code.nextgis.com можно увидеть описание компонентов. Большинство библиотек можно проверить в действии на вкладках примеров, а для тестирования своих изменений можно быстро перенести код в редактор codepen. Количество примеров будет увеличивается с выходом новых версий.

Скриншот страницы примера (leaflet, mapbox-gl, openlayers), демонстрирующий работу с выделением объектов векторных слоёв, загруженных с Веб ГИС nextgis.com.

Взаимодействие с nextgis.com/NextGIS Web

Библиотеки работают по API с данными, хранящимися в Веб ГИС, которая используется в качестве бэкенда. Для эффективного использования наших библиотек у вас должна быть облачная Веб ГИС, развернутая на сервисе nextgis.com, или свой сервер NextGIS Web. Облачная Веб ГИС должна быть на плане Mini или Premium, в настройках CORS своей Веб ГИС нужно указать домены, где развернуты примеры.

Подробности

Текущий статус разработки можно охарактеризовать как Beta-версия. Мы используем все эти библиотеки в наших проектах и постоянно их развиваем.

Библиотеки написаны с использованием TypeScript и собраны в моно-репозиторий при помощи Lerna и пакетного менеджера Yarn. Сборка компонентов осуществляется инструментом Webpack.

Код проекта доступен на GitHub под лицензией GPL v.3.0. Сообщить об ошибке или предложить функцию можно через трекер или форму обратной связи.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *