Раскраска по параметрам

В визуализации пространственных данных ключевую роль играет динамическое изменение внешнего вида объектов карты в зависимости от их свойств. В экосистеме HERE Technologies этот подход реализуется через параметрическую стилизацию, позволяющую управлять цветом, прозрачностью, толщиной линий, формой и другими атрибутами геометрии на основе значений данных.

Основные принципы параметрической раскраски

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

  • геометрия (точка, линия, полигон)
  • атрибуты (скорость, плотность, категория, статус)
  • визуальные свойства (цвет, размер, стиль контура)

Связь между атрибутами и стилем формируется через выражения и правила.

В современных версиях HERE Maps API используется декларативный стиль описания, где визуализация задаётся через объект стиля и условия.


Структура стилевого правила

Базовая логика задаётся через условные выражения:

  • сравнение значений
  • диапазоны
  • категориальные фильтры
  • логические операторы

Пример логической структуры:

style: {
  fillColor: [
    "case",
    ["<", ["get", "population"], 1000], "#e0f7fa",
    ["<", ["get", "population"], 10000], "#80deea",
    ["<", ["get", "population"], 100000], "#26c6da",
    "#006064"
  ]
}

В этом примере цвет полигона зависит от значения атрибута population.


Категориальная раскраска

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

strokeColor: [
  "match",
  ["get", "roadType"],
  "highway", "#ff3b30",
  "primary", "#ff9500",
  "secondary", "#ffcc00",
  "tertiary", "#34c759",
  "#8e8e93"
]

Каждой категории соответствует фиксированный цвет, что позволяет быстро различать классы объектов.


Числовые диапазоны и интервальная шкала

Интервальная раскраска применяется при работе с непрерывными величинами: плотностью населения, скоростью движения, температурой.

Типичная реализация основана на вложенных условиях:

fillColor: [
  "case",
  [">=", ["get", "speed"], 120], "#d32f2f",
  [">=", ["get", "speed"], 80], "#f57c00",
  [">=", ["get", "speed"], 40], "#fbc02d",
  "#2e7d32"
]

Такая схема формирует визуальную градацию, отражающую интенсивность параметра.


Работа с прозрачностью

Помимо цвета часто используется управление альфа-каналом:

fillOpacity: [
  "interpolate",
  ["linear"],
  ["get", "riskLevel"],
  0, 0.1,
  10, 0.4,
  20, 0.7,
  30, 1.0
]

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


Логические выражения в стилях

Параметрическая раскраска в HERE Technologies активно использует булеву логику:

  • all — логическое И
  • any — логическое ИЛИ
  • ! — отрицание

Пример комбинированного условия:

color: [
  "case",
  ["all",
    [">", ["get", "traffic"], 50],
    ["==", ["get", "accident"], true]
  ],
  "#b71c1c",
  "#1e88e5"
]

Такой подход позволяет учитывать сразу несколько факторов.


Стилевые выражения и интерполяция

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

lineWidth: [
  "interpolate",
  ["linear"],
  ["zoom"],
  5, 1,
  10, 3,
  15, 8
]

Здесь толщина линии зависит от масштаба карты, что обеспечивает адаптивную визуализацию.


Тематическое окрашивание (choropleth)

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

fillColor: [
  "interpolate",
  ["linear"],
  ["get", "density"],
  0, "#e8f5e9",
  100, "#a5d6a7",
  500, "#66bb6a",
  1000, "#1b5e20"
]

Такой подход применяется в демографии, экономике и экологическом анализе.


Данные как источник стиля

Ключевая концепция — разделение геометрии и визуализации. Атрибуты объектов становятся источником стиля:

  • скорость → цвет линии
  • загруженность → толщина
  • статус → форма маркера
  • риск → прозрачность

Пример маркера:

icon: {
  size: ["interpolate", ["linear"], ["get", "importance"], 1, 16, 10, 48],
  color: [
    "match",
    ["get", "type"],
    "hospital", "#e53935",
    "school", "#1e88e5",
    "park", "#43a047",
    "#757575"
  ]
}

Многоуровневая стилизация слоёв

Слои карты могут иметь независимые правила окраски:

  • базовый слой (география)
  • слой дорог
  • слой объектов POI
  • слой аналитики

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


Зависимость от масштаба

Масштабирование карты влияет на способ визуализации:

  • на малом масштабе — агрегированные данные
  • на среднем — категории
  • на крупном — точечные объекты
textSize: [
  "interpolate",
  ["linear"],
  ["zoom"],
  6, 10,
  12, 14,
  18, 20
]

Это позволяет адаптировать карту под уровень детализации.


Условная логика в реальном времени

Параметрическая раскраска часто используется для потоковых данных:

  • трафик
  • GPS-трекинг
  • IoT-сенсоры

Пример динамического изменения цвета:

strokeColor: [
  "case",
  [">", ["get", "congestion"], 0.8], "#c62828",
  [">", ["get", "congestion"], 0.5], "#ef6c00",
  "#2e7d32"
]

Обновление значений приводит к мгновенной перестройке визуального слоя.


Композиция стилей

Сложные визуализации строятся через комбинирование нескольких параметров одновременно:

style: {
  fillColor: [
    "interpolate",
    ["linear"],
    ["get", "value"],
    0, "#ffffff",
    100, "#2196f3"
  ],
  fillOpacity: [
    "interpolate",
    ["linear"],
    ["get", "confidence"],
    0, 0.2,
    1, 0.9
  ],
  strokeColor: "#333333",
  strokeWidth: [
    "interpolate",
    ["linear"],
    ["zoom"],
    5, 0.5,
    15, 2
  ]
}

Каждое свойство отражает отдельное измерение данных.


Практика построения семантической карты

Параметрическая раскраска позволяет переходить от геометрической карты к семантической:

  • карта перестаёт быть статичной
  • визуальные элементы становятся носителями информации
  • цвета и формы кодируют смысл, а не только внешний вид

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