Kepler.gl использует инфраструктуру Mapbox для рендеринга карт, тайлов и базовых слоёв. В основе взаимодействия лежит access token — строка, которая идентифицирует приложение и определяет уровень доступа к API Mapbox.
Access token представляет собой строку вида:
pk.eyJ1IjoidXNlciIsImEiOiJja3...
Ключевые характеристики:
pk (public token) или
sk (secret token)Public token используется в клиентских приложениях (в том числе Kepler.gl), secret token — только на серверной стороне.
Kepler.gl (kepler.gl) построен на deck.gl и Mapbox GL JS. Access token выполняет несколько функций:
Без корректного токена карта не загружается, остаются только слои данных без подложки.
В большинстве React-приложений Kepler.gl токен передаётся глобально:
import KeplerGl from 'kepler.gl';
const MAPBOX_TOKEN = 'pk.your_public_token_here';
const App = () => (
<KeplerGl
id="map"
width={width}
height={height}
mapboxApiAccessToken={MAPBOX_TOKEN}
/>
);
Kepler.gl часто используется вместе с Redux:
const initialState = {
keplerGl: {
map: {
mapboxApiAccessToken: 'pk.your_public_token_here'
}
}
};
В production-сборках токен обычно хранится через переменные окружения:
REACT_APP_MAPBOX_TOKEN=pk.your_public_token_here
Использование в коде:
const token = process.env.REACT_APP_MAPBOX_TOKEN;
Особенности:
sk.* токены в frontend-кодеMapbox token может быть ограничен следующими параметрами:
Позволяет использовать токен только с определённых сайтов:
localhostexample.comМожно включать или отключать доступ к:
Такая модель предотвращает злоупотребления даже при утечке public token.
Kepler.gl поддерживает кастомные Mapbox Styles:
const mapConfig = {
mapStyle: {
styleType: 'dark',
topLayerGroups: {},
visibleLayerGroups: {}
}
};
или через URL:
const MAP_STYLE = 'mapbox://styles/user/customstyle';
Токен обязателен для загрузки кастомного стиля, так как стиль хранится в инфраструктуре Mapbox.
Причины:
sk вместо pkmapboxApiAccessTokenKepler.gl позволяет менять токен в runtime:
dispatch(
updateMap({ mapboxApiAccessToken: newToken })
);
Сценарии использования:
При SSR важно учитывать:
Kepler.gl использует Mapbox GL JS как рендер-движок:
mapboxgl.accessTokenПример низкоуровневой установки:
import mapboxgl from 'mapbox-gl';
mapboxgl.accessToken = MAPBOX_TOKEN;
| Тип токена | Назначение | Использование |
|---|---|---|
| pk.* | Public access | Frontend, Kepler.gl |
| sk.* | Admin API | Backend, управление токенами |
Secret токен позволяет:
Использование sk в Kepler.gl недопустимо.
Mapbox автоматически кэширует:
В сложных системах применяются разные токены:
Переключение происходит через конфигурацию Kepler.gl state без пересборки приложения.
Если Mapbox API недоступен:
Это важно при офлайн-аналитике, где карта служит только визуальной подложкой.
Mapbox использует систему vector tiles:
Схема запроса:
Client → Mapbox GL JS → Tile API → Vector Tiles → Render
Токен участвует в каждом запросе как параметр авторизации.
В продакшн-средах часто применяются:
Это снижает риск компрометации и упрощает управление доступом к картографической инфраструктуре.