Юля Павлова
продакт 2GIS Kit

Стили в On-prem

Сделали удобный инструмент, который позволяет загружать стили карты в On-prem, — это продукты 2ГИС, которые работают в закрытом контуре партнёров. Рассказываю, как мы это сделали и что это даёт.
Мы сделали эту фичу для одного крупного B2B-партнёра, у которого более 30 проектов и в каждом из них используется отдельная карта с особым стилем.
On-prem — это возможность инсталляции API, SDK и всех других B2B-продуктов, включая Pro и CityLens, в контур партнёра: от веб- и мобильных карт до всех наших геосервисов. On-Prem в инфраструктуре клиента — это независимая от внешних факторов, с высокой степенью защиты система с тем же самым функционалом, что и другие продукты 2ГИС. Это карта, маршруты, аналитика и многое другое, что автономно работает без доступа к внешней сети и нашим ресурсам. Такой продукт полезен заказчикам, для которых важна безопасность — в первую очередь для государственных и финансовых структур.
Раньше процесс загрузки стилей карты для использования в MapGL JS API был очень сложным — их доставкой в контур партнёров занимались девопс-инженеры. Все настройки надо было положить в определённую папку и много чего ещё настроить, чтобы стили добрались до MapGL. Это долго и сложно. А ещё это не консистентно c принципами on-cloud: стиль надо создать в редакторе, скопировать его id, вставить его в свой код — только потом он применится к карте.

Такая неконсистентность в работе MapGL JS API мешала и нам самим, потому что было трудно описать в документации, как правильно настроить окружение для стиля. А это вызывало много вопросов от наших Оn-prem-заказчиков.
Как решили проблему
Сделали автоматизацию загрузки стилей в контур партнёра буквально нажатием кнопки в Platform Manager. Далее расскажу вам подробно, как это работает.

Сначала настраиваем стиль в редакторе стилей. Допустим, вы хотите выделить все федеральные дороги серым цветом. Нажимаете «Опубликовать стиль». После этого в меню сверху нажимаете «Поделиться» → «Экспорт стиля» → «Экспортировать». Дожидаемся, пока стиль подготовится к скачиванию, и жмём «Скачать».
На ваше устройство скачивается архив в формате .tar.gz. После этого переносим этот файл на устройство с доступом к контуру On-prem любым удобным способом.

Затем надо открыть Platform Manager, установленный в контуре, перейти на вкладку «Стили карты» и нажать «Загрузить стиль». Перетащите в открывшееся окно архив со скачанным стилем и дождитесь загрузки. Вернитесь на страницу со стилями — там на панели стилей появился новый.
Чтобы проверить, что стиль загрузился корректно, нажмите на превью стиля или на его название. Так вы попадёте на страницу песочницы с применённым загруженным стилем. Когда убедитесь, что со стилем всё в порядке, скопируйте идентификатор стиля и вставьте его в код MapGL JS API для отображения.
Если хотите обновить стиль, ранее уже загруженный через через Platform Manager, зайдите в редактор стилей → измените и экспортируйте стиль по инструкции выше → загрузите через Platform Manager в контур. Если идентификаторы стилей идентичны, то стиль автоматически применится на конечной карте, а в интерфейсе вы увидите, что появилось две версии стиля. Переключаясь между ними, можно быстро изменить конечный вид карты.
Если хотите удалить стиль, то сначала убедитесь, что он не подключён ни к какой карте внутри контура. Если удалить действующий стиль, то карта перестанет корректно отображаться.

Бонус: небольшие обновления в On-cloud Platform Manager
Первое: в Platform Manager появился поиск и фильтрация по ключам на страницах с их списком и статистикой. Искать можно не только по названию, но и по самому ключу — хоть по первым символам.
В выгрузке со страницы статистики теперь можно увидеть коды ответов по запросам по каждому сервису.
И буквально на днях появится возможность разделить график статистики на отдельные, чтобы оценивать потребление каждого из сервисов.
Нажимая кнопку «Комментировать», вы принимаете условия Лицензионного соглашения и даёте ООО «ДубльГИС» согласие на обработку персональных данных на условиях и в целях, определённых «Политикой конфиденциальности».