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

Растровые тайлы
Растровые тайлы — это статичные изображения в формате PNG или JPEG. Для каждого участка карты и разных уровней масштабирования заранее подготавливаются отдельные тайлы. Чтобы показать растровые тайлы, достаточно просто загрузить готовые «картинки». Однако растровые тайлы не очень гибкие: при увеличении масштаба изображение теряет четкость, а любые изменения карты требуют создания и выгрузки новых растровых изображений.
Векторные тайлы
Векторные тайлы — это файлы, которые хранят географические данные в виде точек, линий и полигонов, а не изображений. Векторные данные описывают объекты с помощью математических координат. Эти данные рисуются на устройстве пользователя в реальном времени, по запросу — при выборе конкретного фрагмента карты. Это отличает векторные карты от растровых, где изображение — это готовый набор пикселей, который генерируется заранее.
Векторный файл состоит из геометрии и атрибутов.
Геометрия — это форма объектов на карте. Векторные тайлы содержат несколько типов геометрий:
- Точки. Это отдельные объекты с конкретными координатами. Например, здания, деревья, фонарные столбы.
- Линии. Показывают объекты, имеющие протяженность. Например, дороги, реки, границы территорий.
- Полигоны. Показывают объекты, которые занимают площадь. Например, водоемы, парки.
Атрибуты — это информация о каждом объекте. Атрибуты могут содержать:
- Название объекта. Например, улицы или реки.
- Тип объекта. Например, жилая зона, озеро, остановка.
- Другая информация. Высота здания, статус дороги или другое.
Векторные карты более гибкие и адаптивные. Они не теряют качество изображения при изменении масштаба благодаря тому, что объекты автоматически перерисовываются при увеличении или уменьшении. Еще они позволяют менять стиль карты в реальном времени: цвет, внешний вид надписей и уровень детализации карты.
Рендеринг векторных карт требует больше ресурсов устройства. На слабых устройствах или при плохом уровне интернета карта может плохо или долго прогружаться.
Базовая карта и оверлей-слои
Карта состоит из нижнего слоя, который называется подложка, и объектов, среди которых дорожные события, пробки, линии панорам и другие.

Слой — это отдельный элемент карты, который отражает конкретные данные. Каждый слой отвечает за отображение разной информации.
Базовые слои содержат основные элементы карты: дороги, здания и реки. Карту с базовыми слоями обычно называют картоосновой, базовой картой или подложкой.
Оверлей-слои — это дополнительные данные, которые можно наложить поверх базовой карты. Например, это могут быть слои с данными о пробках, погоде, маршрутах или пользовательские данные, такие как зоны покрытия для доставки. Эти слои позволяют кастомизировать карту под специфические задачи.
Кастомизация тайлов и слоев
Изменение стиля
Векторные карты позволяют управлять их стилем — выбирать цвет и толщину линий, добавлять или убирать элементы. Эта возможность помогает менять карту под свои цели и задачи. Например, вы можете выделить конкретные дороги или скрыть менее важные для вас объекты. Кастомизация карты доступна в нескольких продуктах API Яндекс Карт: в Редакторе стилей, JavaScript API, SDK и Static API.
Добавление пользовательских данных
Оверлей-слои позволяют накладывать на карту данные, актуальные для конкретного бизнеса. Это могут быть маршруты доставки, зоны покрытия или местоположения объектов. Функцию поддерживают JS API, MapKit SDK для iOS, Android и Flutter.
Форматы данных для слоев
Данные для оверлей-слоев могут быть представлены в различных форматах. Например, GeoJSON или KML. Это позволяет гибко интегрировать их в карты.
Картоосновы — подложки
Картооснова — это самый нижний слой карты. Ее называют подложкой. Она может быть схематичным изображением или спутниковым снимком.

Для создания схематичной подложки необходимо собрать информацию о местности, используя три источника данных:
-
Спутниковые снимки и аэрофотосъемка
Яндекс ежегодно закупает спутниковые снимки от поставщиков, а еще использует более детальные аэрофотоснимки с дронов. Эти снимки являются основой карты, на которой видны дороги, здания и природные объекты. Снимки участков имеют разное разрешение: для городов нужны более детальные данные, которые позволяют увидеть дорожную разметку, а для межгородских территорий — обзорные снимки, на которых изображены только крупные объекты.
-
Адресные базы и Народная карта
Базы с адресами содержат информацию о зданиях и их географических координатах. Часть данных Яндекс покупает у поставщиков, а другую получает из государственных реестров. Все данные проходят проверку и модерацию. Сотрудники Яндекса проверяют информацию по социальным сетям, сайтам, снимкам или уточняют у людей по телефону.
Народная карта также является важным источником данных. Это отдельный сервис, где пользователи могут участвовать в создании карты. Они сами вносят в нее правки, если замечают неточность, и добавляют новые данные, которых не хватает на текущий момент.
-
GPS-треки
Это данные о перемещении автомобилей, которые собираются с пользователей приложений Яндекс Карт, Навигатора и водителей Яндекс Такси. Эта информация помогает точнее отразить на карте дороги и, как следствие, строить более точные маршруты.
После сбора всех данных картографы их оцифровывают, а именно привязывают спутниковые снимки к местности с помощью GPS-координат. Для этого на снимке выбирают четыре точки, координаты которых известны по GPS-трекам. Например, такой точкой на снимке Москвы может быть пересечение осей Ленинского проспекта и МКАД с координатами 55°38’20” широты и 37°27’35” долготы. Четырех точек достаточно, чтобы найти по географическим координатам на снимке любой объект.
Этот процесс позволяет создать векторный план местности, который станет основой карты.

Проверка точности подложки
Для повышения точности карты используется несколько методов: сбор зеркал и панорам, а также пешие обходы. Каждый из этих методов рассматривается ниже более детально.
Сбор зеркал
Это специальная технология Карт для сбора картографической и справочной информации. Зеркала — это снимки дорог, полученные в процессе объезда и обследования территорий на автомобиле.
В специализированном автомобиле монтируется один или два смартфона с приложением, которое делает геокодированные снимки — фото с координатами, где они были сняты. Фотографии с координатами позволяют распознавать и фиксировать дорожные знаки, светофоры и вывески организаций. Они помогают дополнить и обновить данные на картах.
Зеркала публикуются в открытом доступе, однако прямой доступ к фото и видеоматериалам через API не предоставляется. Съемка в России проводится на регулярной основе в течение всего года, кроме зимнего периода.
Панорамы
Панорамы — это изображение, которое позволяет полностью осмотреть представляемую локацию с горизонтальным углом обзора в 360 градусов. Принцип похож на Сбор зеркал, но в этом случае для фотографирования устанавливаются специальные камеры на крышу автомобиля, чтобы сделать панорамные снимки. Далее происходит выравнивание снимков и привязка их к конкретным точкам на карте. Это позволяет обновлять информацию о дорожных знаках, зданиях и инфраструктуре. Панорамы можно получить в MapKit Mobile SDK и JS API v2.1.
Пешие обходы
Этот метод применяется для сбора и актуализации данных в городе. Пешие обходы проводятся раз в год, а в крупных быстрорастущих городах — чаще. Команда специалистов собирает на улицах информацию о наличии и местоположении различных объектов, включая входы в здания и конкретные организации, лестницы, лифты, туалеты, адресные таблички, последнюю милю с кодами зданий, подъезды, тропинки и другую инфраструктуру.
Особое внимание уделяется труднодоступным местам, куда невозможно проехать на автомобиле, например, закрытым дворам. Сотрудники производят фотосъемку адресных табличек, уточняют рабочие часы и контактные данные организаций, фиксируют расположение входов в здания, собирают информацию о номерах квартир в подъездах. Также осуществляется создание поэтажных схем торговых центров, аэропортов и вокзалов.
Преимущество данного метода заключается в возможности сбора детальной информации о городской инфраструктуре, особенно в тех местах, куда невозможно добраться на транспорте, что позволяет создавать максимально точные и актуальные карты городской среды.
Обновление подложки
Каждый снимок обновляется в течение года в зависимости от его актуальности. После покупки новых спутниковых снимков карты дополняются актуальной информацией. Особое внимание уделяется крупным городам, поскольку они меняются чаще и существеннее.
Картографы выезжают на местность для проверки соответствия векторной карты спутниковым снимкам и реальной ситуации в городе. После проверки вносятся необходимые правки. Карта также актуализируется по специальным запросам B2B-клиентов, работающих в конкретных регионах.
Народная карта
Существует дополнительный способ актуализации данных с помощью сервиса «Народная карта», где пользователи самостоятельно создают и редактируют карты. Например, картографы используют этот ресурс для проверки номеров домов и получения данных об удаленных районах, в которые не получается выезжать часто. На текущий момент сервисом пользуются около 10 000 активных пользователей.
Все пользовательские материалы проходят обязательную модерацию на основании базы знаний и правил картографирования. Для принятия правок устанавливаются определенные условия. Например, добавление адреса возможно только при его наличии в адресном реестре, а изменение этажности дома требует подтверждения фотографией. С полным перечнем правил модерации можно ознакомиться по ссылке.

Дорожный граф
Дорожный граф необходим для построения маршрута. Это сетка дорог, которая разделена на фрагменты, которые называются ребра. Каждое из них содержит следующую информацию о конкретном участке дороги: географические координаты, направление движения, средняя скорость, с которой машины едут на этом участке, и другое. Еще ребра несут данные о том, как они стыкуются между собой — есть ли между участками поворот направо или налево, можно ли там развернуться или, например, разрешается ехать только прямо.
Для разных типов маршрутов мы используем разные графы.
Автомобильный граф
Автомобильный граф состоит из разнообразных автодорог — от внутриквартальных проездов до магистралей. Он также содержит информацию о пробках и дорожных знаках и событиях, будь то аварии или ремонт. Данные обновляются в режиме реального времени пользователями Яндекс Карт и Навигатора и позволяют вычислить текущую скорость движения на участках дорог.
Пешеходный граф
Пешеходный граф содержит:
- дорожки и тропинки;
- зебры;
- лестницы;
- арки в стенах зданий;
- автомобильные дороги, доступные для пешеходов, самокатов и велосипедов. Например, улицы с тротуарами.

Для построения маршрутов на грузовом транспорте учитывается только те дороги, где разрешен проезд грузовикам. Улицы с ограничениями для грузовиков исключаются. Совокупность доступных для таких автомобилей дорог с набором условий и ограничений называется грузовым графом. Он включает знаки, которые ограничивают габариты грузового транспорта, фактическую и разрешенную массу, ограничения проезда на городских улицах для машин с разрешенной максимальной массой от 3,5 тонны и более и другие параметры.
Одна из самых важных характеристик ребер графа — это средняя скорость движения по ним в данный момент. Она зависит от текущей дорожной обстановки и правил дорожного движения. Например, от ограничений скорости.
Система обработки транспортных данных работает в режиме реального времени и обрабатывает десятки тысяч обезличенных сигналов — GPS-треков — от пользователей геосервисов Яндекса и водителей Яндекс Такси. Обработка сигнала позволяет сделать его более качественным и менее шумным. Она происходит с помощью фильтрации и интерполяции. Процесс интерполяции помогает вычислить промежуточные значения между известными точками данных и восстановить маршрут при неточном сигнале GPS или в случае его полной потери.
На финальной стадии система анализирует текущую скорость ребра в режиме реального времени и строит слой пробок, где закрашивает каждое ребро зеленым, желтым или красным цветом.
Справочник адресов и организаций
Справочник хранит все данные об организациях на местности. Это кафе, рестораны, магазины, поликлиники, детские площадки, памятники и любые другие объекты. Он содержит названия организаций, их адрес, точное местоположение и вход, а при наличии также атрибуты — вид деятельности, часы работы, контакты и сайт.

Данные для Справочника приобретаются у поставщиков, а также собираются и проверяются самостоятельно. Это осуществляется с помощью пешеходных обходов, колл-центра и платформы Яндекс Бизнес, где компании вносят информацию о себе самостоятельно.
Для осуществления пешеходного обхода сотрудник Яндекса направляется на место, где выполняет фотосъемку с указанием названия организации и времени работы, а также производит фотографии объекта для формирования карточки организации на карте.

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

Создание карты из геоданных
Процесс создания и обновления карт в Яндексе включает несколько важных этапов:
- Ежедневный экспорт геоданных из Справочника организаций и Народной карты с самыми последними изменениями.
- Загрузка информации в основное хранилище геоданных.
Основное хранилище геоданных

В этом хранилище размещены таблицы с геоданными в картографическом формате Яндекса. В них отражены типы объектов и связи между ними, геометрия в географических координатах WGS84, административно-территориальное деление, адресные точки, здания и дорожная сеть.
В отличие от других сервисов, использующих проекцию Web Меркатор, где Земля представлена в виде сферы, Яндекс создает карты в проекции Меркатора (WGS84), где планета изображена в форме эллипсоида.
Помимо формата WGS84, осуществляется конвертация координат в проекцию Web Меркатор. Это позволяет интегрировать картографические тайлы Яндекса в сторонние продукты, такие как WebGL, Mapbox и Google, а также подключать внешние тайлы в собственный JS API компании. Такая необходимость чаще всего возникает в B2B-кейсах.

Денормализация
После хранилища геоданные проходят денормализацию. Это процесс преобразования данных в картографический формат Яндекса, подходящий для создания тайлов.
Процесс состоит из нескольких этапов:
- Генерализация — упрощение геометрии без изменения облика объектов.
- Расстановка объектов — определение масштаба и приоритизации показа объектов.
- Преобразование данных — деление больших датасетов на тайлы для показа небольших частей карты.
- Преобразование из географических координат WGS84 в координаты на проекции Меркатора.

Редактор дизайна
Дизайн карт составляется в базе редактора дизайна. Это инструмент с набором фильтров со стилями для слоев объектов и их атрибутов. Дизайн — единый для всех карт сервисов Яндекса, он обновляется раз в две недели.

Публикация релиза и Рендерер тайлов
Процесс начинается с объединения геоданных и дизайна в единую публикацию. На этом этапе подготавливается релиз данных для Рендерера тайлов, включающий информацию о рельефе и других объектах.
Рендерер тайлов представляет собой сервис для отрисовки тайлов. Алгоритм работы включает отбор объектов, попадающих в границы тайла, после чего геоданные и дизайн передаются в сервис Рендерер подложки для преобразования в необходимый формат - векторные и растровые тайлы карты. При этом растровые тайлы конвертируются в изображения, а векторные - в тайловые координаты с добавлением дополнительной информации: названий объектов, атрибутов и прочих данных.
Готовые тайлы не хранятся в архиве, поскольку карты генерируются под различные дизайны и локации в режиме реального времени. Учитывая высокую ресурсоемкость этого процесса, для оптимизации нагрузки используется кэширование тайлов. При каждом запросе они извлекаются из кэша и предоставляются соответствующим сервисам: мобильному и десктопному приложениям Яндекс Карт, различным API и MapKit SDK.

В Рендерере осуществляется финальная отрисовка карты, которая затем используется другими сервисами для построения маршрутов, отображения пробок и треков.
Полный рабочий процесс производства карты выглядит так:
