Appearance
Panel options
Every option the panel exposes, in the order the editor groups them. Path is the key in the panel JSON, which is what you need for dashboards-as-code.
Field mapping
| Option | Path | Default | Notes |
|---|---|---|---|
| Field mapping | fieldMappings | autodetection | Per query, keyed by refId. Detected values appear as placeholders; set one to override, or None to switch the role off. See Field roles. |
Map
| Option | Path | Default | Notes |
|---|---|---|---|
| Show side panel | showSidePanel | true | kepler's layer and filter panel. Worth hiding on small tiles. |
| Follow dashboard theme | followGrafanaTheme | true | Restyles kepler's chrome from the Grafana theme, and drives Match theme on the base map. See Theme. |
| Time range sync | timeSync | toMap | toMap, bidirectional, variables, off. See Time range sync. |
| Time window variables | timeVariables | — | Only shown when timeSync is variables. The two variables the slider's window is published to, as UTC ISO 8601. See Time window variables. |
| Update variables while playing | publishWhilePlaying | false | Only shown when timeSync is variables. Writes the window during playback rather than only when it stops. Costs the animation frames. |
| Playhead variable | playheadVariable | — | Writes the trip animation's current instant to a variable as UTC ISO 8601: once on load, during playback at the interval below, and where it stops. One way, independent of timeSync. A stat of the taxis on the road right then, on PostgreSQL: SELECT count(*) FROM trips WHERE NULLIF('$playhead', '')::timestamptz BETWEEN trip_start AND trip_end — the NULLIF counts nothing while the variable is empty, where a bare cast of '' fails. On data sources that add the quotes themselves, such as DuckDB, write $playhead unquoted; see Time window variables. Set it on one map only. |
| Minimum interval while playing | publishIntervalMs | 1500 | Only shown when publishWhilePlaying is on, or playheadVariable is set. Least time between two writes during playback, 250 ms and up. See Time window variables. |
| Sync time with other maps | peerTimeSync | false | Shares the time filter and trip playhead with the other maps on the dashboard that have this on, in the browser. See Peer time sync. |
| Trip layer | tripLayerMode | table | table keeps one row per point and every column with it; geojson folds each trip into one row and keeps only the path. See Trajectories. |
| Place names | gazetteer | countries | Where a query's place names and codes are looked up (the Place name role): public/gazetteer/countries.json, public/gazetteer/usa-states.json, public/gazetteer/airports.geojson, or a URL of your own. Fetched only when a query names places. See Places by geohash or by name. |
| Night shading | dayNight | off | off, to (at the end of the dashboard range), from (at its start). Shades the side of the Earth in darkness. See Night shading. |
| Show the sun | dayNightSun | false | Only shown when dayNight is not off. The point the sun stands over. |
| Draw as a route | routeQueries | — | A list of refIds. Each query's rows are joined in order into one line, a dataset of its own ("… · route") drawn as a Line layer. See Routes and networks. |
| Flow line style | flowRenderMode | straight | straight, curved, animated-straight. See Origin–destination flows. |
| Base map | basemap | auto | auto (OpenFreeMap Dark or Positron, following the theme), openfreemap-positron, openfreemap-bright, openfreemap-liberty, openfreemap-dark, openfreemap-fiord, dark-matter, positron, voyager (CARTO), grafana-satellite, grafana-satellite-terrain, grafana-topographic-terrain, custom. See Base maps and relief. |
| Style URL | customBasemapUrl | — | Only shown when basemap is custom. A MapLibre style.json served from your own network. |
| Raster tile server | rasterServerUrl | — | TiTiler-compatible server that turns a COG or a Zarr store into tiles, for queries returning a raster_url or zarr_url column. None by default: until one is set those queries draw nothing and the panel names them. It reads the imagery on the map's behalf, so it has to be able to reach it, and is handed every URL, signature included. Development Seed's public demo, https://titiler.xyz (the default before 1.3.0), reads public imagery only. A .pmtiles URL needs no server and ignores this. See Rasters. |
| Raster colour ramp | rasterColormap | — | Colour ramp for rasters a query produces: blues, greens, reds, viridis, magma, greys, rdylbu, spectral. Empty leaves kepler's own cfastie, which is built for drone NDVI and is not monotonic — on a continuous field it reads as confetti. Applies to single-band rasters; a true-colour scene is drawn from its bands. See Rasters. |
| Let the tile server paint | rasterPainted | false | Ask the server for finished pictures (.png) instead of raw values. Needed for a classified raster — land cover, soils — whose colours are a fact of the data: the ramp above cannot express nine named classes, and the browser rescales the class numbers over the whole data-type range, landing every class on one colour. The server reads the palette the file carries instead. The layer then offers only opacity, as PMTiles does. Leave off for imagery. See Rasters. |
| Raster bands | rasterBands | true colour | Which bands of a scene to draw, for a query that also returns a raster_item_url pointing at its STAC item: true colour, forestBurn, infrared, nbr, ndmi, or a custom value. The composites are built by the tile server in one request; the indices are computed in the browser from two bands, each with a diverging ramp of its own. A dashboard variable is interpolated here, so a dropdown can drive it. See Rasters. |
| Zarr value range | zarrRescale | — | Range a Zarr variable is stretched over, as min,max in the store's own units — 0,30 for mm/day of rain, 270,305 for kelvin. Empty stretches each tile over its own extremes, so neighbouring tiles disagree about what a colour means and the map reads as patchwork. The ramp above is shared. See Zarr stores. |
Velocity fields and symbols are configured on the layer
There is no wind option here, and no symbol option either. A Streamlines layer's density, trail, cycle and smoothing, a Vector field's symbol and spacing, and everything the Symbols layer draws live in their own panels inside the map, beside their colour — see Velocity fields and Symbols.
Cross-filtering
| Option | Path | Default | Notes |
|---|---|---|---|
| Cross-filtering | variableMappings | — | A list. Each row binds a column or a click to a dashboard variable. See Cross-filtering. |
| Publish drawn area | areaVariable | — | Writes the drawn polygon or rectangle to a variable as WKT in EPSG:4326; an area written there from elsewhere is drawn, and an empty one removes the figures. See Publishing. |
| Publish drawn line | lineVariable | — | Writes the line drawn with the draw tool's Line to a variable as LINESTRING WKT in EPSG:4326, for queries along it (a vertical section, a profile, the rows near it). Map to variable only. See Publishing. |
| Click to set the area | clickArea | false | Only shown when areaVariable is set. A click on an entity sets the area to a square around it, as if drawn by hand: it shows on the map and deletes like a drawing. |
| Square side (m) | clickAreaSizeMetres | 6000 | Only shown when clickArea is on. Side of that square in metres — the same area at every latitude. |
| Select from the popup | clickConfirm | false | Only shown when a click mapping exists, or clickArea is on. A click only opens kepler's popup; its Select button publishes and Clear empties. For a map whose selection reloads data or changes a tab. See Cross-filtering. |
| Ad hoc filters from the popup | adHocFilterFields | — | A list of query columns. The popup of a clicked entity offers each one's value as an ad hoc filter, for (=) or out (!=), as a table cell does. Shown only when the dashboard has an ad hoc filters variable for the panel's data source. See Ad hoc filters. |
| Highlight rows where | selectionField | — | A column of the query: the rows where it is true (or 1) are ringed as selected, beside what the click mappings publish, without the selection travelling in the URL. See A selection the query flags. |
| Dim the rest | dimUnselected | false | Only shown when selectionField is set or a click mapping exists. While the selection marks something, every other row is covered by a veil of the base map's tone. See Dim the rest. |
| Selection outline | haloStyle | auto | Only shown when selectionField is set or a click mapping exists. auto: amber while nothing is dimmed; under the veil of dimUnselected, a thin line round up to 50 shapes and none beyond. amber, thin (one line in the base map's contrast colour) and none fix one. |
| Publish viewport (for other panels) | viewportVariables | — | Four variables for the bounding box edges. See Publishing. |
| Mosaic selection | mosaicSelection | — | The name of a Mosaic Selection on the dashboard (Chaski app). The map's range, time and multi-select filters are clauses in it, sent while they move, and the other panels' clauses on the map's columns land on its filters. See Linked to a Mosaic selection. |
| Mosaic location columns | mosaicColumns | — | Only shown when mosaicSelection is set. lng, lat: the longitude and latitude columns of the Selection's data, for the two options below. |
| Filter by the drawn area | mosaicArea | true | Only shown when mosaicColumns is set. The latest figure drawn on the map keeps, in the Mosaic panels, the rows inside it. |
| Filter by the view | mosaicViewport | false | Only shown when mosaicColumns is set. The view filters the Selection as a bounding box while you pan and zoom. |
| Fit to data when these change | fitOnVariables | — | A list of variables. When one changes, the map frames its new rows as on load, at the zoom they need; a refresh or any other variable never moves it. For pickers that move the data elsewhere (a state, a route). See Fit to data when a variable changes. |
The shape of a variableMappings entry
| Key | Meaning |
|---|---|
field | the column the mapping is about; meaningless for coordinate and center |
variable | the variable that receives the value — or the latitude for a coordinate pair |
variableTo | the upper bound of a numeric range — or the longitude for a coordinate pair |
source | filter (default), click, coordinate, center, chart |
zoom | for center only: the zoom to jump to. Absent, the map keeps its zoom |
A mapping with both variable and variableTo and no source is a range mapping: the numeric filter on field publishes its min and max as a pair.
Map configuration
| Option | Path | Default | Notes |
|---|---|---|---|
| Map configuration | saveRequest | — | The Save current map button. It is a counter, not a boolean, so repeated saves register. |
| Import configuration | mapConfig | — | The stored configuration itself, and the textarea for pasting one in. See Map configuration. |
Why the save button is a counter
Grafana gives panel option editors no channel to the panel component, and the map state lives in the panel's own Redux store. So the editor bumps a counter and the panel — which can see its store — does the capture. The Save map button the map shows in the panel editor needs no counter: it is part of the panel, and calls that same capture directly.
Options this panel ignores
Grafana's standard field options — unit, decimals, colour scheme, thresholds, value mappings, data links — do not affect the map. Colour comes from kepler's layer configuration; see Colour palettes and scales.
Data links are worth a specific note: a data link on another panel pointing at this one's variables is the basis of the Center mapping, and that works well. Data links configured on this panel do nothing.