Платформа Navixy по умолчанию поддерживает все наиболее популярные в мире сервисы Web-картографии: Google, Яндекс, Bing, Openstreetmap, Wikimapia и еще более десятка других. Тем не менее, бывают ситуации, когда нужно подключить дополнительную карту, например, с высокой детализацией конкретного региона или специализированную для служебной ГИС. О том, как это сделать в системе Navixy, мы и расскажем в этом посте.

Когда нужные дополнительные карты

По нашей практике потребность в добавлении новых карт возникает у клиентов чаще всего в двух случаях:

Недостаточно подробные карты для нужного региона. Порой ни одна из имеющихся публичных карт не предоставляет необходимого уровня детализации. Как правило, это относится к малонаселенным местностям. Например, на карте могут быть различимы только улицы и кварталы, но не указаны номера домов, или сеть дорог прорисована не вполне четко. При этом у клиента (или оператора сервиса GPS-мониторинга) имеется лицензированная карта с хорошей детализацией этого региона, которую можно добавить в систему.

На карте нужна дополнительная тематическая информация. Для специализированных ГИС, часто – для производственных и научных целей, на существующей карте необходимо отобразить дополнительную информацию. Это могут быть объекты инфраструктуры (часто используется ресурсодобывающими компаниями для указания мест добычи и маршрутов транспортировки) или статистическая информация о территории, к примеру, относящаяся к типу почв или проживающему населению.

В платформе Navixy отобразить совершенно новую карту или нанести на существующую карту собственную информацию можно за счёт наложения дополнительного картографического слоя.

Такой слой может быть добавлен для любого интересующего участка местности – от небольшого района до территории целой страны. При этом он может быть подключен как для конкретных учетных записей (ограниченное использование), так и открыт для всех пользователей сервиса (публичный доступ).

Добавляем новые карты в Navixy

В общем виде добавление нового картографического слоя включает 3 этапа:

  1. Подготовить картографические данные в формат тайлов
  2. Загрузить данные в тайловый сервер (сторонний или собственный)
  3. Подключить новый слой в системe Navixy

Первые два этапа – подготовительные. По большей части они выполняются заказчиком, с использованием рекомендаций наших консультантов. На третьем этапе, когда сервер работает и отдает тайлы с картографической информацией, мы помогаем добавить новый слой в систему мониторинга, и при необходимости ограничить доступ к нему для нужного круга пользователей.

1. Готовим карты и тайлы

Имеющийся картографический материал потребуется преобразовать в тайловую графику – равномерные участки с привязкой к географическим координатам для каждого масштабного уровня.

Чаще всего наши клиенты для этого используют формат MBTiles компании Mapbox, хотя можно готовить файлы и с другим расширением, например, MBTiles компании Mapbox, хотя можно готовить файлы и с другим расширением, например, GeoTIFF. Важно, что вне зависимости от выбранного формата файлов тайлы должны быть представлены в проекции Меркатора.

Это обеспечит корректное наложение пользовательского слоя на карты, доступные в программном обеспечении Navixy, так как карты также выполнены в проекции Меркатора. Размер тайлов может быть любым, однако при отображении в платформе Navixy он будет автоматически подогнан под наиболее распространенный — 256 ppi.

2. Запускаем тайловый сервер

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

http://tileserver.com/{z}/{y}/{x}

Ссылка должна позволять получать корректный ответ по запросу вида:

//tileserver.com/{z}/{x}/{y}.png

Тайловый сервер может быть развернут самостоятельно, либо через использование внешнего SaaS-сервиса, предлагающего подобные услуги.

Вариант А. Собственный тайловый сервер

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

  • Передачи тайлов с проверкой возможности их загрузки из кэша;
  • Распределения нагрузки и создания очередности запросов;
  • Перевода векторных данных в растровые тайлы;
  • Загрузки исходных данных в базу данных (не требуется в случаях, когда данные уже есть в БД и требуется передача информации только о объектах, например дорогах, домах и т.п.);
  • Управления базами данных (СУБД);

Системным администраторам мы советуем выбрать Unix-подобную операционную систему, поскольку это дешевле и хорошо отработано, а для ряда из них и вовсе имеются готовые решения. Например, можно развернуть тайловый сервер прямо из пакетов для Ubuntu, используя подложку OpenStreetMap. В общем случае для Unix-подобных систем подробно описаны поэтапные алгоритмы для развертывания тайлового сервера.

Вариант Б. Внешний тайловый сервис (SaaS)

Существуют сторонние компании, которые предлагают готовое решение по развертыванию и поддержанию постоянной работы тайлового сервера. В этом случае все необходимые компоненты и вычислительные ресурсы предоставляются провайдером услуги. Из популярных стоит отметить крупный зарубежный сервис Mapbox и российский Квазар.

3. Подключаем новый слой к Navixy

После запуска тайлового сервера с загруженной в него картографической информации, остается подключить его к системе Navixy. Для этого мы добавляем в ней новый “плагин” специального типа “внешняя веб-картография”. В качестве параметров указываем URL тайлового сервера, а также, при необходимости ограничить доступ к информации – ID сервиса или ID конкретных учетных записей.

В интерфейсе пользователя новый слой появляется в списке доступных слоев.

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

Итак, мы познакомили вас с общим процессом добавления нового картографического слоя в систему Navixy. Если у вас есть конкретная необходимость выполнить такую операцию или появились вопросы, ждем ваших обращений.