Skip to main content

MarkerLayer

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.