Skip to main content

MarkerLayer

From v9.0

MarkerLayer renders a packed atlas of 32×32 SVG-inspired glyphs on top of Deck.gl's IconLayer. It is reused by ZoomableMarkerLayer for marker-based graph nodes and exposes simple accessors for marker name, color, and size.

Usage​

import {MarkerLayer} from '@deck.gl-community/graph-layers';

const layer = new MarkerLayer({
id: 'markers',
data: nodes,
getPosition: (node) => node.position,
getMarker: (node) => node.markerName,
getColor: (node) => node.color,
getSize: (node) => node.size
});

Markers are looked up in the bundled atlas and mapping generated by the scripts/packing.sh build step. The atlas ships with dozens of glyphs, including common shapes (circle, triangle-up, diamond, etc.) and UI metaphors (pin, star, bookmark).

Properties​

MarkerLayer inherits all Deck.gl IconLayer props. Custom accessors include:

getMarker (function, optional)​

Returns the atlas key for each datum. Defaults to d => d.marker.

getColor (function or array, optional)​

RGBA color accessor forwarded to the sublayer. Defaults to [0, 0, 0].

getSize (function or number, optional)​

Marker size in pixels. Defaults to 10.

data (array, optional)​

Collection of marker data. Defaults to an empty array.

Marker names​

Use the public Marker type to check names against the bundled atlas:

import type {Marker} from '@deck.gl-community/graph-layers';

const marker: Marker = 'pin-filled';

Marker is a TypeScript union, not a runtime list of names.

The MarkerLayer example shows colored city markers and hover labels. Its source uses the local graph-layers workspace for both standard and local development.