Когда исследователи с Аляски узнали, что рядом с ними за стаканом пива сидит человек, который сделал QuickMapServices, они повскакивали с мест и принялись жать руку. Максим Дубинин, гендиректор NextGIS и автор идеи модуля, говорит об этом просто: «Модуль давно стал как воздух – за него не благодарят, его просто используют». Десять миллионов раз.
Начало: восемь полей настроек – это слишком много
2013 год. Команда NextGIS работает с QGIS и наталкивается на неудобство, которое любой ГИС-специалист того времени опознал бы мгновенно: добавить картографическую подложку – целый квест.
Существовавший тогда модуль TileLayer Plugin для подключения TMS-сервиса требовал заполнить восемь-девять полей. Плюс к этому – у QGIS не было нормального нативного драйвера TMS, а тот, что был, работал криво.
Наше решение должно было позволить в пару кликов подключить подложку. Если есть TMS-ссылка, ничего больше не должно было быть нужно.
Максим поручил задачу одному из разработчиков. Путь оказался извилистым: сначала попробовали написать аналог существующего модуля на C++. Всё получилось, но поддерживать и распространять библиотеку на C++ в QGIS оказалось тяжело, поэтому от этого подхода отказались. Тогда написали собственный TMS-драйвер на Python и встроили его в первую версию модуля. Поверх – простой и понятный интерфейс для добавления сервисов.
Поддержка TMS, при всей кажущейся простоте, оказалась сложной: разные спецификации, домены, нюансы в поведении разных сервисов. Но главное было сделано – инструмент заработал.
От локальной библиотеки к публичному каталогу
С самого начала вместе с модулем поставлялась готовая библиотека сервисов. Пользователь мог и сам завести локальную коллекцию – эта возможность есть в QMS до сих пор. Постепенно появились энтузиасты, которые брали стандартную библиотеку, перерабатывали её и распространяли как единый файл – такая стихийная краудсорсинговая экосистема.
В 2016 году NextGIS запустила централизованный публичный каталог – qms.nextgis.com. Идея простая: единая база, которую пополняет всё сообщество. От откровенного мусора спасает автоматическая валидация и мониторинг. Стихийное распространение файлов потеряло смысл – всё нужное оказалось в одном месте.
Параллельно был написан скрипт, который импортировал сервисы из OSMLab – ещё одной коллекции, которую сообщество OpenStreetMap собирает через GitHub. Несколько таких импортов дали каталогу хорошую стартовую базу. Сегодня в QMS более 600 рабочих сервисов, прошедших валидацию.
В цифрах: как рос QMS
Рост установок QMS хорошо отражает историю самого проекта: сначала медленный набор аудитории, затем – резкое ускорение по мере того, как сообщество стало рекомендовать модуль как более надёжную альтернативу другим способам добавления подложек.

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



Почему QMS обогнал конкурентов
К 2017 году у модуля было уже больше 130 тысяч установок. Главный конкурент – модуль OpenLayers Plugin – на тот момент был популярнее. Но у него была слабая технологическая основа: проблемы с перепроецированием, экспортом и печатью, нестабильность и падения.
Пользователи, в том числе разработчики QGIS, сами стали советовать на форумах использовать QMS. Кроме библиотеки подложек – это было технологически более здоровое решение.
В 2018 году OpenLayers Plugin закрылся. QMS к тому моменту уже прочно занял своё место. Это история без маркетинга и PR*-кампаний – модуль продвигал себя сам, через рекомендации в тематических форумах и репутацию надёжного инструмента.
Важная веха: переход на нативный TMS-драйвер в QGIS
В 2017-2018 годах QGIS начал активно двигаться к версии 3.0. В платформе появился собственный нативный TMS-драйвер. В NextGIS поначалу отказывались его принимать – драйвер был сырым, в нём не хватало функций, которые уже были в собственном драйвере QMS.
Разгорались дискуссии с другими разработчиками: почему не переходите? «Потому что там нет того и этого, а у нас есть».
Но QGIS дорос. Нативный драйвер стал полноценным. NextGIS организовала краудфандинг – собрала 2000 евро, что тогда воспринималось как большой успех. Об этом писали в Twitter (сейчас X), деньги прислали 27 участников из 11 стран.

На эти средства собственный драйвер в QMS был заменён на нативный от QGIS, а сам модуль портирован* на версию 3.0. Технический долг был закрыт, архитектура выровнена.
Краудсорсинг: честный взгляд изнутри
QMS – это «сервис сервисов». Модуль сам по себе несложный, и большого сообщества контрибьюторов* кода вокруг него не сложилось: за десять с лишним лет – около 43 пулл-реквестов*, часть из которых – просто обновления сервисов.
Иная картина с самим каталогом: огромную часть сервисов добавили пользователи. Краудсорсинг здесь работает, но с оговорками.
Урок простой – если у тебя популярный бесплатный сервис с краудсорсингом, на тебя начинает валиться большое количество мусора.
Без автоматической валидации в каталоге было бы не 654 сервиса, а тысячи – большинство нерабочих или бессмысленных. Пользователи добавляют что попало, не читают инструкции, не отвечают на вопросы модераторов. Это фоновый шум, с которым приходится постоянно работать.
Почему QGIS не поглотил QMS
Команда QGIS практикует включение популярных модулей в ядро. Почему не QMS?
Максим объясняет просто: QMS – это и сам модуль, и его база. Включить модуль в ядро можно, но что делать с каталогом? Тащить за собой зависимость от qms.nextgis.com? Вопрос без очевидного ответа.
Взаимодействие идёт иначе: QGIS развивает базовую функциональность – например, нативный TMS-драйвер, поддержку разных видов сервисов. QMS на эту инфраструктуру опирается и занимается своим – каталогом и удобным интерфейсом. Разделение труда, которое устраивает обе стороны.
Что есть QMS для QGIS и NextGIS
Каждый десятый загружаемый модуль QGIS – это QuickMapServices – один из 30 модулей компании, но самый известный за её пределами. Однако в команде относятся к этому спокойно:
QMS – это просто пример выбора правильной точки приложения силы. Когда у тебя в голове опыт работы в отрасли 10-15 лет, ты начинаешь видеть проблемы, которые нужно решить. Как минимальными усилиями в правильный момент времени сделать лучше максимальному количеству людей.
Подложки для Марса, Луны и Юпитера в каталоге – пожалуй, самый неожиданный кейс использования.

В остальном QMS работает везде, где нужна базовая картография: инструмент настолько фундаментальный, что выделить отдельные отрасли не получится.
Планы: векторные тайлы и приватные сервисы
Из ближайшего: поддержка новых типов сервисов, в особенности векторных тайлов. Сейчас в QMS четыре типа: TMS, WMS, WFS и GeoJSON. Недавно добавили поддержку формата WebP.
Из более отдалённого: приватные сервисы как возможная платная функция для организаций.
Из мечты: выделенный специалист, который будет вести направление целиком – и серверную часть, и модуль. Своего рода лид geospatial-интернета в рамках NextGIS.
Одно точно: поддержка модуля продолжится. QuickMapServices никуда не денется.
«Часть команды – часть корабля»
QMS никогда не был стратегическим проектом в классическом смысле. Не было плана на пять лет, инвестиционного раунда или маркетинговой кампании. Был конкретный раздражающий изъян в рабочем процессе и люди, у которых хватило опыта и профессионализма, чтобы устранить его правильно.
Open-source не гарантирует ни благодарности, ни помощи, ни финансовой отдачи. Максим говорит об этом, как о данности, которую стоит принять заранее: «Делайте то, что нужно вам самим. Окружайте себя людьми, с которыми хочется работать. А сообщество подтянется».
Модуль пережил несколько волн усталости, смену разработчиков, технические переломы – и каждый раз возвращался в рабочий ритм.
За десять лет QMS стал для пользователей QGIS примерно тем же, чем становится хороший инструмент для мастера – его перестают замечать отдельно от работы. Он просто есть. Привычный настолько, что уже почти незаметный, и при этом нужный. Десять миллионов раз.
Благодарности
Модуль и экосистема QMS обязаны своим существованием сотрудникам NextGIS, а также всему ГИС-сообществу:
- Тем, кто писал код и развивал модуль в разные годы, особенно автору первой версии Евгению Никулину
- Авторам пулл-реквестов
- Участникам краудфандинговой кампании
- Тем, кто добавлял сервисы в каталог
- И просто пользователям – тем, кто выбирал QMS и советовал его другим
Спасибо всем!
Полезные ссылки
- QuickMapServices на сайте QGIS
- Каталог qms.nexgis.com для добавление новых подложек
*
PR – связь с общественностью.
Портирование – подстройка, адаптация.
Контрибьютор – человек, который вносит вклад в проект: добавляет данные, исправляет ошибки, предлагает улучшения или участвует в развитии инструмента.
Пулл-реквест – запрос на проверку и принятие изменений в репозиторий.