Типы объектов для стилизации

Система стилизации карт строится вокруг двух базовых измерений: типов географических объектов (FeatureType) и типов визуальных элементов (ElementType). Именно их комбинация определяет, какие части карты изменяются и каким образом.

Классификация стилизуемых объектов

Внутри модели визуализации карты все элементы делятся на две независимые категории:

  • FeatureType — логическая категория географического объекта (дороги, водоёмы, административные области)
  • ElementType — конкретный визуальный слой объекта (геометрия, подписи, иконки)

Эта модель позволяет разделять «что отображается» и «как отображается».


FeatureType: логическая структура карты

FeatureType определяет, к какому классу относится объект на карте. Эти типы используются в правилах стилизации для выбора области воздействия.

Основные категории FeatureType

Административные объекты

Используются для государственных и территориальных границ:

  • administrative.country — страна
  • administrative.province — регион / область
  • administrative.locality — город
  • administrative.neighborhood — район
  • administrative.land_parcel — земельные участки

Административные объекты часто стилизуются для создания «политических» карт, минималистичных интерфейсов или акцентирования границ.


Объекты инфраструктуры

  • road — все дороги
  • road.highway — автомагистрали
  • road.arterial — магистральные улицы
  • road.local — локальные улицы

Подкатегории позволяют дифференцировать визуальную важность транспортных путей.


Природные объекты

  • landscape — общие ландшафты
  • poi.park — парки
  • water — водоёмы
  • natural.landcover — природное покрытие (леса, пустыни и т.д.)

Эти типы часто используются для создания тематических карт (туризм, экология, навигация).


Объекты интереса (POI)

  • poi.business — коммерческие объекты
  • poi.attraction — достопримечательности
  • poi.government — государственные учреждения
  • poi.medical — медицинские объекты

POI-слой часто скрывается или упрощается в минималистичных интерфейсах.


Служебные категории

  • transit — транспортные узлы и маршруты
  • transit.station — станции
  • all — универсальный селектор для всех типов

ElementType: визуальные компоненты объектов

Если FeatureType определяет «что», то ElementType определяет «какая часть объекта изменяется».

Основные ElementType

geometry

Определяет форму объекта (геометрические контуры):

  • линии дорог
  • полигоны территорий
  • контуры водоёмов

Используется для изменения цвета, насыщенности, прозрачности.


labels.text.fill

Отвечает за заливку текста подписей:

  • названия городов
  • улиц
  • объектов

labels.text.stroke

Контур текста, обеспечивающий читаемость:

  • обводка подписей на сложных фонах

labels.icon

Иконки POI и транспортных объектов.


labels

Группа всех текстовых элементов (универсальный уровень управления подписью).


Структура правила стилизации

Каждое правило описывает комбинацию FeatureType + ElementType и набор визуальных параметров:

  • color — цвет (HEX или RGB)
  • visibility — отображение (on, off, simplified)
  • lightness — светлотность
  • saturation — насыщенность
  • gamma — контрастная коррекция
  • weight — толщина линий (для геометрии)

Принцип применения правил — каскадный: более специфичные правила перекрывают общие.


MapTypeStyle и StyledMapType

Стилизация в API реализуется через два основных механизма.

MapTypeStyle

Базовый JSON-формат описания стилей:

  • используется в конфигурации карты
  • задаёт набор правил для FeatureType и ElementType
  • применяется при инициализации карты

Структура:

  • featureType
  • elementType
  • stylers

StyledMapType

Объект, создающий отдельный тип карты:

  • позволяет переключать стилизованные карты как слои
  • используется через map.mapTypes.set()
  • интегрируется в интерфейс выбора карт

Ключевая особенность — возможность существования нескольких визуальных «режимов» одной карты.


Комбинирование FeatureType и ElementType

Система стилизации работает через пересечение двух осей:

  • FeatureType определяет область
  • ElementType определяет слой внутри области

Пример логики:

  • изменить цвет всех дорог → road + geometry
  • скрыть подписи городов → administrative.locality + labels
  • убрать POI → poi + all

Специфика наследования стилей

Стили применяются по иерархии:

  1. all (глобальный уровень)
  2. категориальный уровень (road, poi)
  3. подкатегории (road.highway)
  4. точечные элементы (road.highway + geometry)

Это позволяет строить сложные визуальные схемы без конфликтов правил.


Типы stylers и их поведение

Каждый стиль внутри правила задаётся через массив stylers:

color

Изменяет цвет геометрии или текста.

visibility

Управляет отображением:

  • on — показать
  • off — скрыть
  • simplified — упрощённое отображение

saturation

Контролирует интенсивность цвета:

  • отрицательные значения → обесцвечивание
  • положительные → усиление цвета

lightness

Регулирует яркость объекта.

gamma

Коррекция контрастности для визуальной балансировки карты.

weight

Толщина линий (актуально для дорог и границ).


Особенности взаимодействия типов объектов

Конфликты правил

Если два правила применяются к одному FeatureType и ElementType, приоритет определяется порядком объявления.

Наследование от общих типов

Правило road автоматически влияет на:

  • road.highway
  • road.arterial
  • road.local

если для них не задано более специфичное правило.

Полное скрытие объектов

Комбинация:

  • visibility: off
  • конкретный FeatureType

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


Практическая модель стилизации

Система типов формирует трёхуровневую модель:

  1. Географическая семантика (FeatureType)
  2. Визуальный слой (ElementType)
  3. Набор графических правил (stylers)

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