Interface: VisualizationLayer
Defined in: spec/types.ts:270
Properties
activeLegendId?
optionalactiveLegendId?:string
Defined in: spec/types.ts:283
Id of the currently active legend from legends[].
click?
optionalclick?:LayerClickConfig
Defined in: spec/types.ts:350
Spec-driven click reaction. When present, <GeoVisProvider> invokes
click.onSelect for features clicked on this layer — without the consumer
placing a component or calling useGeoVisClick() in the tree. Declaring
click also opts the layer into click tracking, so activeLegendId is not
required. Typed via a type-only import so the data-only spec layer keeps no
runtime dependency on React (mirrors hoverTooltip).
clickAnchor?
optionalclickAnchor?:object
Defined in: spec/types.ts:307
Spec-driven click marker. When present, geovis automatically places a
visual indicator on the clicked feature without requiring a <GeoVisMarker>
component. Three rendering modes — see field descriptions.
color?
optionalcolor?:string
Accent colour for the built-in SVG pin. Applied when iconImage is not
set. Default: '#3FB1CE'. For a custom HTML/React element, use
<GeoVisMarker> instead.
iconImage?
optionaliconImage?:string
MapLibre sprite icon name. Renders a feature-state-driven companion
symbol layer at the polygon label point.
iconSize?
optionaliconSize?:number
Scale factor for the sprite icon. Default: 1.
latKey?
optionallatKey?:string
Feature property key holding the latitude. Paired with lngKey, geovis
reads the pin position from feature.properties instead of the tile
geometry to avoid drift at high zoom.
lngKey?
optionallngKey?:string
Feature property key holding the longitude. Must be paired with latKey.
offset?
optionaloffset?: [number,number]
Pixel offset [x, y] applied to the DOM marker.
filter?
optionalfilter?:LayerFilter
Defined in: spec/types.ts:375
Declarative predicate that hides features not matching it, compiled to
the engine's native filter expression (dispatch({ type: 'set-filter' }),
PRD-002). Reads feature.properties[property] — the same direct-access
path propertyName uses above, not the mapData-joined feature-state
value. Gated by CapabilitySet.dataFeatures.filter per source type.
geometry
geometry:
GeoVisGeometryType
Defined in: spec/types.ts:273
hoverPaint?
optionalhoverPaint?:object
Defined in: spec/types.ts:295
Paint applied via MapLibre setFeatureState({ hover: true }) when the
pointer enters a feature. When present, the adapter adds a companion
line layer (<id>-hover-outline) driven by feature-state expressions.
lineColor?
optionallineColor?:string
lineWidth?
optionallineWidth?:number
hoverTooltip?
optionalhoverTooltip?:HoverTooltipConfig
Defined in: spec/types.ts:341
Spec-driven hover tooltip. When present, <GeoVisProvider> automatically
renders a <GeoVisHoverTooltip> for features hovered on this layer —
without requiring the component to be placed in the tree. Mirrors
GeoVisHoverTooltipProps (render, formatValue, style, offset,
emptyValueLabel, className). An empty object ({}) opts in to the
default tooltip layout. Typed via a type-only import so the data-only
spec layer keeps no runtime dependency on React.
id
id:
string
Defined in: spec/types.ts:271
legends?
optionallegends?:LegendSpec[]
Defined in: spec/types.ts:281
Optional alternative legend definitions presented as runtime toggles.
mapDataId?
optionalmapDataId?:string
Defined in: spec/types.ts:289
Optional reference to an entry in spec.mapData.
When present, the layer can be styled/queried by per-feature values
coming from the dataset (joined via feature.id or mapData.joinKey).
maxzoom?
optionalmaxzoom?:number
Defined in: spec/types.ts:278
minzoom?
optionalminzoom?:number
Defined in: spec/types.ts:277
paint?
optionalpaint?:LayerPaint
Defined in: spec/types.ts:279
propertyName?
optionalpropertyName?:string
Defined in: spec/types.ts:367
GeoJSON feature property name for direct data access without mapData.
When set (and mapDataId is absent), the proportional circles expression
reads values directly from feature.properties[propertyName] via MapLibre's
['get', propertyName] syntax — no feature-state join needed.
When mapDataId is also set, this field is ignored in favour of the
standard feature-state resolution.
selectedPaint?
optionalselectedPaint?:object
Defined in: spec/types.ts:301
Paint applied via MapLibre setFeatureState({ selected: true }) when a
feature is clicked. When present, the adapter adds a companion line layer
(<id>-selected-outline) driven by feature-state expressions.
lineColor?
optionallineColor?:string
lineWidth?
optionallineWidth?:number
sizeBy?
optionalsizeBy?:SizeBy
Defined in: spec/types.ts:356
Proportional symbol configuration. When present on a point layer,
circle-radius is driven by a data expression instead of a static value.
Ignored on non-point geometries.
sourceId
sourceId:
string
Defined in: spec/types.ts:272
sourceLayer?
optionalsourceLayer?:string
Defined in: spec/types.ts:274
title?
optionaltitle?:string
Defined in: spec/types.ts:275
transition?
optionaltransition?:LayerTransition
Defined in: spec/types.ts:393
Opt-in animated transition applied when this layer's source data changes
between two specs. Only honoured for point (circle) layers backed by a
geojson source; ignored otherwise. When declared, the adapter fades the
OLD points out while the NEW points fade in, instead of swapping data
instantly. Omit it to keep the instant setData behaviour.
Example
const layer: VisualizationLayer = {
id: 'stores',
sourceId: 'stores-src',
geometry: 'point',
transition: { kind: 'crossfade', durationMs: 600, easing: 'ease-in-out' },
};
visible?
optionalvisible?:boolean
Defined in: spec/types.ts:276