Skip to content

Layers and attributes ​

The panel on the left of the map is kepler.gl's own, unmodified. Layers, their styling, the blend modes, the ordering — all of it is documented upstream, and this page only covers what is different about using it inside a Grafana panel.

What the panel has already done for you ​

By the time you open the layer list, the panel has turned each query into a dataset and, where it could, built the layer:

You get automaticallyFrom
Pointa lat/lng pair
Polygon / GeoJSONa geometry column
H3 hexagona column of valid H3 indices
Tripa trip id + time + position
Floworigin and destination columns

See How a query becomes a map. Everything else — heatmap, grid, hexbin, cluster, icon, arc, line, S2 — you create by hand here, choosing the dataset and pointing the layer's columns at it.

On a map with no saved configuration, the layers kepler builds — point, GeoJSON (its fill, or its stroke for lines), H3, S2, A5, GeoHash and icon — start coloured by one of the query's numeric columns: mag on a map of earthquakes. kepler 3.3.0-alpha.20 takes a decimal column before an integer one, prefers names such as score, value, count or mean, and passes over ids, codes and coordinates (id, zip, lat, h3…). Up to a million rows it takes only a column whose values vary; beyond that, the first candidate. A saved map keeps the colours it was saved with.

Adding a layer by hand ​

+ Add Layer → pick a type → pick the dataset → assign its columns. The columns offered are the ones your query returned, under the names the panel gave them: coordinate roles arrive as latitude and longitude, geometry as _geojson, origin/destination as lat0/lng0/lat1/lng1. Every column without a role keeps its original name.

Each layer card has a ⋮ menu beside its eye: Zoom to layer, Duplicate layer, Edit layer JSON and Remove layer. They used to be buttons that appeared on hover.

Attributes ​

Every layer has colour, "colour based on", a palette, a scale and opacity. Beyond that they diverge: point-like layers have radius and stroke, aggregation layers have cell size and coverage, polygons have extrusion and wireframe. kepler's own reference is the place for the full list.

Two are worth calling out here because they cause confusion in a dashboard:

Radius. kepler's default point radius is small, and on a country-sized view a few thousand points can read as an empty map. This is the first thing to change, not the last.

High-precision rendering when zooming in closely. kepler's documentation lists this on point, arc, line, icon, geojson, hexagon and grid layers. It is not there in the version this plugin ships. The setting survives as a constant and a type in kepler 3.3.0-alpha.20, but no layer declares or reads it — deck.gl retired the separate 64-bit path years ago and its current precision handling is always on. Do not go looking for the switch. See Under the hood.

A few attributes are recent enough that kepler's own reference may not list them yet:

  • Target Arrow on arc and line layers draws an arrowhead at the end of each one, with its Arrow Shape and Arrow Size: a direction you otherwise only read from a colour gradient.
  • Cluster, Hexbin and Grid label each cell with its point count, abbreviated like cluster bubbles (1.5k). A layer added now starts with the label on; clearing its field turns it off, and a layer saved before stays unlabelled. Cluster also has Min Points per Cluster, which hides the clusters below it — 2 removes the single points.
  • Extruded GeoJSON polygons take an Elevation Offset, which lifts them off the ground, and Invert height, which gives the lowest values the greatest height.

Styling does not save itself ​

Everything you set here lives in kepler's store. It survives a query refresh — the panel swaps data underneath your layers rather than rebuilding them — but not a page reload, until you capture it with Map configuration → Save current map. See Map configuration.

The datasets are the queries' ​

The dataset list above the layers has a ⋮ menu of its own — Replace, Group By, Join, Spatial Join, Suitability Analysis and Remove dataset — and the data table behind each dataset's table icon lets you rename a column, change its type or delete it. They work in the panel, on data the panel does not keep: every dataset is rebuilt from its query.

  • A column renamed or retyped in the table is back as the query returns it on the next refresh.
  • Group By, Join, Spatial Join and Suitability Analysis add a dataset and a layer for the result. Both outlast a refresh, but not a reload of the page, and Save map does not keep them: it saves the map's configuration, not data, and nothing rebuilds the result when the panel loads.

Use them to explore. For a result the dashboard should show every time, do the same in the query — GROUP BY, a join, ST_Intersects — or in a Grafana transformation, and the map draws it like any other query.

Layers configured with a URL ​

Seven of kepler's layer types are configured with a URL rather than with data: vector tile, raster tile, WMS, 3D tiles, bitmap, 3D models and, since kepler 3.3.0-alpha.19, Zarr.

Three of those a query can reach after all, because a URL is a string like any other: a raster_url column draws a raster tile layer, a wms_url/wms_layer pair draws a WMS, and a Zarr store named by a query is drawn by the panel's own zarrTiles layer rather than by kepler's zarr. See Rasters, WMS services and Zarr stores.

The other four you add by hand — and on a hardened Grafana you will need the host in connect-src either way. See Layers configured with a URL.


Upstream: Types of layers · Layer attributes · The kepler.gl workflow

Written against kepler.gl 3.3.0-alpha.20, which is what this plugin bundles. kepler's public documentation describes the 3.2 stable line and lists fifteen layer types; the pre-release registers twenty-three, the Flow layer among them. See Upstream documentation.

Apache-2.0. Bundles kepler.gl (MIT) and flowmap.gl (Apache-2.0).