Одной из сильнейших сторон Kepler.gl является гибкая система визуального оформления геоданных. Базовые настройки позволяют быстро получить информативную карту, однако для профессиональных проектов часто требуется индивидуальная стилизация: изменение цветовых схем, настройка размеров объектов, управление прозрачностью, применение пользовательских картографических тем и адаптация интерфейса под фирменный стиль приложения.
Под кастомными стилями в Kepler.gl обычно понимаются:
Система визуализации Kepler.gl строится вокруг нескольких уровней оформления:
Каждый уровень может настраиваться независимо.
Цвет — один из наиболее важных элементов визуализации.
Пример создания точечного слоя:
const layer = {
id: 'points',
type: 'point',
config: {
dataId: 'cities',
label: 'Cities',
color: [255, 0, 0]
}
};
Значение цвета задается массивом RGB:
[255, 0, 0] // красный
[0, 255, 0] // зеленый
[0, 0, 255] // синий
Для мягких оттенков:
[52, 152, 219]
[46, 204, 113]
[241, 196, 15]
Подобный формат используется практически во всех типах слоев.
При визуализации числовых данных обычно применяются цветовые диапазоны.
Пример настройки:
visualChannels: {
colorField: {
name: 'population',
type: 'integer'
},
colorScale: 'quantile'
}
Типы шкал:
| Шкала | Назначение |
|---|---|
| quantile | распределение по квантилям |
| quantize | равномерное деление диапазона |
| ordinal | категориальные значения |
| linear | линейное распределение |
Цветовой диапазон задается отдельно:
colorRange: {
name: 'Custom Range',
colors: [
'#F7FBFF',
'#C6DBEF',
'#6BAED6',
'#2171B5',
'#08306B'
]
}
Для брендированных решений часто используются корпоративные цвета.
Пример палитры:
const corporatePalette = {
name: 'Corporate',
type: 'sequential',
category: 'Custom',
colors: [
'#001F3F',
'#0074D9',
'#7FDBFF',
'#39CCCC',
'#3D9970'
]
};
Подключение:
colorRange: corporatePalette
Такие палитры особенно полезны при:
Прозрачность помогает визуализировать плотные наборы данных.
Для точек:
config: {
opacity: 0.5
}
Для полигонов:
config: {
filled: true,
opacity: 0.3
}
Для линий:
config: {
opacity: 0.7
}
Значения находятся в диапазоне:
0 - полностью прозрачно
1 - полностью непрозрачно
Практика показывает, что оптимальные значения обычно находятся между:
0.3 – 0.8
Размер точек влияет на читаемость карты.
Базовый размер:
config: {
radius: 10
}
Привязка к данным:
visualChannels: {
sizeField: {
name: 'population',
type: 'integer'
},
sizeScale: 'sqrt'
}
Типы масштабирования:
linear
sqrt
log
Пример:
config: {
radiusRange: [5, 50]
}
Минимальный размер:
5 px
Максимальный размер:
50 px
Полигоны могут содержать собственное оформление границ.
Пример:
config: {
stroked: true,
thickness: 2
}
Изменение толщины:
config: {
thickness: 5
}
Управление цветом:
config: {
color: [44, 62, 80]
}
Часто используется комбинация:
fillColor
strokeColor
opacity
thickness
для создания контрастных географических областей.
Линейные объекты могут отображать:
Настройка:
config: {
thickness: 4,
color: [231, 76, 60]
}
Полупрозрачные маршруты:
config: {
thickness: 3,
opacity: 0.4
}
Яркие транспортные схемы:
config: {
thickness: 6
}
Тепловые карты особенно чувствительны к стилю.
Пример:
config: {
colorRange: {
colors: [
'#0000FF',
'#00FFFF',
'#00FF00',
'#FFFF00',
'#FF0000'
]
}
}
Альтернативная палитра:
config: {
colorRange: {
colors: [
'#F7FCFD',
'#CCECE6',
'#66C2A4',
'#238B45',
'#00441B'
]
}
}
Зеленые палитры подходят для:
Красно-желтые схемы чаще применяются для:
Шестиугольная агрегация является одной из наиболее популярных визуализаций в Kepler.gl.
Пример:
{
type: 'hexagon',
config: {
colorRange: {
colors: [
'#FFF5F0',
'#FCBBA1',
'#FB6A4A',
'#CB181D',
'#67000D'
]
}
}
}
Изменение размера ячеек:
config: {
radius: 500
}
где значение задается в метрах.
Чем больше радиус:
Для трехмерных карт используются параметры высоты и экструзии.
Пример:
config: {
enable3d: true
}
Настройка высоты:
visualChannels: {
heightField: {
name: 'sales',
type: 'integer'
}
}
Дополнительные параметры:
config: {
elevationScale: 10
}
Увеличение масштаба:
elevationScale: 20
умножает высоту объектов.
Kepler.gl работает поверх Mapbox GL и позволяет использовать собственные стили карт.
Подключение:
mapStyle: {
styleType: 'custom',
topLayerGroups: {},
visibleLayerGroups: {},
mapStyles: {}
}
Пример URL собственного стиля:
mapbox://styles/company/custom-style
Подобные стили создаются в редакторе Mapbox Studio.
Возможности:
В конфигурации можно переключать готовые стили:
mapStyle: {
styleType: 'dark'
}
Доступные варианты:
dark
light
muted
satellite
Пример:
mapStyle: {
styleType: 'satellite'
}
Для аналитических систем часто выбирают:
dark
поскольку яркие слои данных становятся заметнее.
Можно скрывать отдельные элементы базовой карты.
Пример:
mapStyle: {
visibleLayerGroups: {
label: false,
road: true,
building: true,
water: true
}
}
Скрытие подписей:
label: false
Полезно для:
Kepler.gl поддерживает изменение темы интерфейса через Styled Components.
Создание темы:
const customTheme = {
sidePanelBg: '#1E1E1E',
titleTextColor: '#FFFFFF',
textColor: '#D0D0D0'
};
Передача:
<KeplerGl
id="map"
theme={customTheme}
/>
Настраиваемые элементы:
Глубокая кастомизация интерфейса может выполняться через Styled Components.
Пример:
import styled from 'styled-components';
Создание собственного контейнера:
const MapWrapper = styled.div`
width: 100%;
height: 100vh;
background: #111;
`;
Использование:
<MapWrapper>
<KeplerGl />
</MapWrapper>
Такой подход позволяет полностью интегрировать карту в существующую дизайн-систему приложения.
Все визуальные настройки могут экспортироваться в конфигурацию проекта.
Пример структуры:
{
version: 'v1',
config: {
visState: {},
mapState: {},
mapStyle: {}
}
}
После экспорта сохраняются:
Импорт выполняется автоматически:
addDataToMap({
datasets,
config
});
Это позволяет воспроизводить идентичное оформление на разных устройствах и в разных средах выполнения.
Рекомендуемые настройки:
Темная карта
Яркие акцентные цвета
Минимум подписей
Высокий контраст
Рекомендуемые настройки:
Светлая карта
Умеренная насыщенность цветов
Полупрозрачные полигоны
Четкие границы районов
Рекомендуемые настройки:
Толстые маршруты
Высокая контрастность
Минимум фоновых объектов
Акцент на дорожной сети
Рекомендуемые настройки:
Зеленые палитры
Плавные градиенты
Средняя прозрачность
Высокая детализация слоев
Рекомендуемые настройки:
Hexagon Layer
3D-экструзия
Категориальные палитры
Тепловые карты
Грамотная кастомизация стилей превращает Kepler.gl из инструмента базовой визуализации в полноценную платформу для создания профессиональных геоаналитических интерфейсов, где визуальное оформление становится не только элементом дизайна, но и важной частью интерпретации пространственных данных.