Платформа Navixy по умолчанию поддерживает все наиболее популярные в мире публичные сервисы Web-картографии: Google, Яндекс, Bing, Openstreetmap, Wikimapia и еще более десятка других. Тем не менее, бывают ситуации, когда нужно подключить дополнительную карту, например, с высокой детализацией конкретного региона или специализированную для служебной ГИС.
Подключение новых карт к Navixy
В общем виде добавление нового картографического слоя включает 3 этапа:
- Подготовить картографические данные в формат тайлов
- Загрузить данные в тайловый сервер (сторонний или собственный)
- Подключить новый слой в системe Navixy
Первые два этапа – подготовительные. По большей части они выполняются силами владельца сервиса мониторинга или клиента, заказавшего услугу. Наши консультанты при этом предоставляют необходимые рекомендации. На третьем этапе, когда сервер работает и отдает тайлы с картографической информацией, специалисты компании Navixy помогают добавить новый слой в систему мониторинга, и при необходимости ограничить доступ к нему для нужного круга пользователей.
1. Подготовка карт и тайлов
Имеющийся картографический материал потребуется преобразовать в тайловую графику – равномерные участки с привязкой к географическим координатам для каждого масштабного уровня.
Чаще всего наши клиенты для этого используют формат MBTiles компании Mapbox, хотя можно готовить файлы и с другим расширением, например, GeoTIFF. Важно, что вне зависимости от выбранного формата файлов тайлы должны быть представлены в проекции Меркатора.
Это обеспечит корректное наложение пользовательского слоя на карты, доступные в программном обеспечении Navixy, так как карты также выполнены в проекции Меркатора. Размер тайлов может быть любым, однако при отображении в платформе Navixy он будет автоматически подогнан под наиболее распространенный — 256 ppi.
2. Запуск тайлового сервера
Подготовленные файлы потребуется разместить на тайловом сервере, где для каждого файла будет доступна ссылка вида:
http(s)://tileserver.com/{z}/{y}/{x}
Ссылка должна позволять получать корректный ответ по запросу вида:
//tileserver.com/{z}/{x}/{y}.png
Тайловый сервер может быть развернут самостоятельно, либо через использование внешнего SaaS-сервиса, предлагающего подобные услуги.
Вариант А. Собственный тайловый сервер
Поднять собственный сервис для раздачи тайлов карт – вполне типичная задача, которая под силу каждому хорошему системному администратору. Основная сложность состоит не столько в его настройке, сколько в сравнительно высоких требованиям к вычислительным ресурсам сервера. На сервере будут запущены компоненты для решения следующих задач:
- Передачи тайлов с проверкой возможности их загрузки из кэша;
- Распределения нагрузки и создания очередности запросов;
- Перевода векторных данных в растровые тайлы;
- Загрузки исходных данных в базу данных (не требуется в случаях, когда данные уже есть в БД и требуется передача информации только о объектах, например дорогах, домах и т.п.);
- Управления базами данных (СУБД);
Системным администраторам мы советуем выбрать Unix-подобную операционную систему, поскольку это дешевле и хорошо отработано, а для ряда из них и вовсе имеются готовые решения. Например, можно развернуть тайловый сервер прямо из пакетов для Ubuntu, используя подложку OpenStreetMap. В общем случае для Unix-подобных систем подробно описаны поэтапные алгоритмы для развертывания тайлового сервера.
Вариант Б. Внешний тайловый сервис (SaaS)
Существуют сторонние компании, которые предлагают готовое решение по развертыванию и поддержанию постоянной работы тайлового сервера. В этом случае все необходимые компоненты и вычислительные ресурсы предоставляются провайдером услуги. Из популярных стоит отметить крупные зарубежные сервисы и российский Квазар.
3. Подключение нового слоя к Navixy
После запуска тайлового сервера с загруженной в него картографической информации, остается подключить его к системе Navixy. Для этого мы добавляем в ней новый “плагин” специального типа “внешняя веб-картография”. В качестве параметров указываем URL тайлового сервера, а также, при необходимости ограничить доступ к информации – ID сервиса или ID конкретных учетных записей.
В интерфейсе пользователя новый слой появляется в списке доступных слоев.
Каждый слой можно включать как отдельно (режим замещения), так и вместе с другим слоем (режим наложения). В последнем случае для управления наложением нужные данные выбираются галочками.