
В каталоге сервисов qms.nextgis.com, который используется модулем QuickMapServices для QGIS, появился новый тип подложек – векторные тайлы.
Если говорить именно о подложках, а не о данных, до сих пор каталог работал с двумя типами источников: TMS отдаёт заранее подготовленные растровые тайлы, а WMS рендерит карту из источника на лету – тоже в виде растра. Но в картографической разработке растёт популярность векторных тайлов: они дают куда больше гибкости в управлении стилями и не теряют чёткость при масштабировании, в отличие от растровых изображений.
Векторные тайлы уже поддерживаются QGIS, а поскольку QuickMapServices – самый используемый модуль для подключения картографических сервисов, ему не хватало только одного: возможности добавлять такие карты через привычный каталог QMS, в пару кликов, как и любой другой сервис. Теперь эта возможность есть – в QMS можно добавить карту, которая описывается не картинками, а JSON-документом стиля в формате Mapbox или MapLibre.
Что нужно, чтобы добавить сервис
Чтобы добавить новый сервис на основе векторных тайлов, достаточно указать ссылку на JSON-документ стиля. Пример:
https://tiles.openfreemap.org/styles/liberty
JSON, кроме описания стилей, ссылается на источники векторных тайлов, шрифты и иконки – всё это подгружается автоматически по адресам, указанным внутри самого документа.

После создания подключения вы можете добавлять созданную вами подложку на векторных тайлах в QGIS.

Теперь можете либо перейти непосредственно к созданию своего сервиса, либо узнать чуть больше о том, как устроен JSON-файл стиля.
Как устроен файл стиля
Если разобраться, что находится внутри такого JSON, дальше станет понятно, откуда берутся данные для карты.
Файл стиля решает две разные задачи.
- Источники данных. Блок sources указывает, где искать сами геометрии – тайлы в формате векторных данных (обычно .pbf (иногда встречается .mvt)), отдаваемые по стандартной схеме адресации тайлов – XYZ (иногда её называют ZXY, по фактическому порядку следования параметров в URL: {z}/{x}/{y}). Адрес источника можно задать напрямую готовым шаблоном ссылки, либо сослаться на отдельный TileJSON-документ с актуальным шаблоном и описанием самой схемы данных.
- Оформление. Блок layers описывает, как рисовать то, что лежит в источниках: каким цветом воду, какой толщины линии дорог, какой заливкой здания. Каждый слой оформления ссылается на конкретный источник и конкретный слой внутри него.
Отдельно указываются sprite – набор иконок для точечных объектов (остановки, кафе, другие POI) и glyphs – шрифты для подписей.
Ключевой момент: сам JSON-файл стиля не содержит координат и геометрии объектов. Это описание того, как рисовать карту, а не что на ней нарисовано. Данные всегда приходят из источника, указанного в sources, отдельно от файла стиля.
Откуда берутся данные
Здесь возможны два сценария.
Использовать готовый открытый источник. Пример со стилем liberty выше как раз такой случай – он ссылается на публичный сервис OpenFreeMap, который бесплатно раздаёт векторные тайлы по всему миру на основе данных OpenStreetMap. Чтобы протестировать такой сервис, ничего, кроме самой ссылки на стиль, не требуется – данные уже развёрнуты и обслуживаются сторонним провайдером.
Поднять собственный источник. Если нужны свои данные – например, обработанные и стилизованные специально под задачу, – потребуется отдельный сервер векторных тайлов (например, на основе tileserver-gl или аналогичного ПО), на который затем сошлётся sources в вашем файле стиля. Если вы упаковываете свои тайлы в современный облачно-оптимизированный формат PMTiles, то сервер не требуется – достаточно хостинга, отдающего файлы по HTTPS.
Файл стиля в обоих случаях – это просто статический документ, который нужно где-то разместить. И здесь также подойдёт любой хостинг, отдающий файлы по HTTPS (S3-бакет, GitHub Pages, обычный веб-сервер).
Зачем это нужно
Векторные тайлы дают несколько практических преимуществ по сравнению с растровыми подложками:
- гибкость оформления – можно менять внешний вид карты без пересборки данных;
- чёткость на любом масштабе – векторная графика не теряет резкость при увеличении, в отличие от растровых изображений;
- компактность – векторные данные обычно весят меньше растровых при сопоставимой детализации;
- локализация подписей – заголовки на карте могут отображаться на разных языках прямо из одного набора данных, без отдельных подложек под каждый язык.
Добавить и начать использовать новый тип сервисов можно уже сейчас с помощью каталога qms.nextgis.com через модуль QuickMapServices для QGIS.
Несколько подложек доступны по умолчанию во встроенном каталоге.
