В визуализации пространственных данных ключевую роль играет динамическое изменение внешнего вида объектов карты в зависимости от их свойств. В экосистеме 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
]
Здесь толщина линии зависит от масштаба карты, что обеспечивает адаптивную визуализацию.
Частный случай параметрической раскраски — хороплетные карты, где полигоны окрашиваются в зависимости от агрегированных данных.
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"
]
}
Слои карты могут иметь независимые правила окраски:
Каждый слой получает собственный набор выражений, что позволяет строить сложные визуальные композиции.
Масштабирование карты влияет на способ визуализации:
textSize: [
"interpolate",
["linear"],
["zoom"],
6, 10,
12, 14,
18, 20
]
Это позволяет адаптировать карту под уровень детализации.
Параметрическая раскраска часто используется для потоковых данных:
Пример динамического изменения цвета:
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
]
}
Каждое свойство отражает отдельное измерение данных.
Параметрическая раскраска позволяет переходить от геометрической карты к семантической:
В результате карта функционирует как многомерная визуальная модель данных, где каждый пиксель зависит от набора параметров объекта.