Работа с графическими объектами на карте в HERE Maps JavaScript API опирается на систему стилизации геометрии, где ключевую роль играют параметры заливки (fill) и обводки (stroke). Эти параметры определяют визуальное представление полигонов, линий и связанных пространственных объектов, формируя читаемую и информативную карту.
В основе визуального представления лежит объект стиля, применяемый к геометрии. В HERE Maps API это реализовано через набор свойств, передаваемых при создании объектов или изменяемых после их добавления на карту.
Для большинства пространственных объектов используются следующие категории параметров:
Эти параметры применяются к объектам H.map.Polygon,
H.map.Polyline и производным типам.
Полигон в HERE Maps API представляет собой замкнутую геометрическую фигуру, которая может отображать территории, зоны интереса, административные границы и любые области.
При создании полигона стиль задаётся через объект
H.map.Polygon.Style или через H.map.Polygon с
параметрами стиля.
Пример логики конфигурации:
const polygon = new H.map.Polygon(geometry, {
style: {
fillColor: 'rgba(0, 128, 255, 0.4)'
}
});
Заливка определяется цветом с поддержкой прозрачности. Использование RGBA является предпочтительным, поскольку позволяет сохранять читаемость карты при наложении нескольких объектов.
Прозрачность влияет на восприятие слоёв карты. Значение альфа-канала:
При наложении нескольких полигонов важно учитывать суммарную визуальную плотность. Чрезмерно насыщенные цвета ухудшают различимость границ.
В стандартном API отсутствует встроенная поддержка CSS-градиентов, однако визуальные эффекты достигаются через:
Пример логики:
Таким образом создаётся псевдо-градиентная карта.
Обводка используется для выделения границ геометрических объектов. В
HERE Maps API она задаётся через strokeColor,
lineWidth и дополнительные параметры.
const polygon = new H.map.Polygon(geometry, {
style: {
fillColor: 'rgba(0, 128, 255, 0.3)',
strokeColor: '#003366',
lineWidth: 2
}
});
Обводка выполняет две функции:
Параметр lineWidth определяет толщину обводки в
пикселях. Его значение напрямую влияет на читаемость карты:
Чрезмерная толщина может визуально «ломать» геометрию, особенно при масштабировании карты.
Для создания пунктирных линий используется lineDash:
style: {
strokeColor: '#ff0000',
lineWidth: 2,
lineDash: [4, 4]
}
Массив определяет последовательность:
Комбинации позволяют формировать различные типы визуальных обозначений:
[1, 3] — мелкий пунктир[10, 5] — крупный технический контурНаиболее распространённый сценарий — одновременное использование заливки и обводки. Это позволяет одновременно выделять область и её границу.
const polygon = new H.map.Polygon(geometry, {
style: {
fillColor: 'rgba(255, 165, 0, 0.25)',
strokeColor: 'rgba(255, 140, 0, 1)',
lineWidth: 3
}
});
Такая комбинация используется для:
HERE Maps API позволяет изменять стиль объекта после его создания. Это используется для интерактивных карт, где поведение зависит от событий.
polygon.setStyle({
fillColor: 'rgba(0, 200, 0, 0.4)',
strokeColor: '#006600',
lineWidth: 2
});
Типовые сценарии:
При работе с большими наборами геометрий стиль часто определяется программно на основе свойств объекта.
Пример логики:
function getStyleByValue(value) {
return {
fillColor: value > 80 ? 'rgba(255,0,0,0.4)' : 'rgba(0,0,255,0.3)',
strokeColor: value > 80 ? '#990000' : '#003399',
lineWidth: 2
};
}
Такая модель используется в тематических картах и аналитических панелях.
Линии в HERE Maps API представлены объектом
H.map.Polyline. Для них применяется только обводка, без
заливки.
const polyline = new H.map.Polyline(lineString, {
style: {
strokeColor: '#0000ff',
lineWidth: 4
}
});
Обводка линии должна учитывать масштаб карты:
Для этого часто используется адаптивное изменение
lineWidth в зависимости от уровня зума.
Динамическая стилизация под zoom level позволяет сохранять читаемость карты.
Пример подхода:
Реализация:
map.addEventListener('mapviewchange', function () {
const zoom = map.getZoom();
polygon.setStyle({
fillColor: zoom > 10 ? 'rgba(0,128,255,0.4)' : 'rgba(0,128,255,0.2)',
strokeColor: '#003366',
lineWidth: zoom > 10 ? 3 : 1
});
});
При большом количестве объектов стиль влияет не только на визуализацию, но и на производительность.
Ключевые факторы:
Оптимизация достигается через:
При наложении нескольких полигонов прозрачность становится инструментом визуальной иерархии.
Рекомендации логики:
Такое распределение позволяет сохранять читаемость даже при плотной загрузке карты.
В более сложных сценариях используется
H.map.SpatialStyle, позволяющий централизованно задавать
параметры отображения.
const style = new H.map.SpatialStyle({
fillColor: 'rgba(100, 100, 255, 0.3)',
strokeColor: '#222222',
lineWidth: 2
});
Этот подход применяется при работе с большим количеством однотипных объектов, когда требуется единообразное отображение.
При проектировании картографических интерфейсов важно соблюдать единый визуальный язык:
Такая система снижает когнитивную нагрузку и повышает читаемость пространственных данных.