Skip to content

Sources

Ops with no upstream input: features bound by the host, synthesized geometry, images, DEM and raster tiles.

10 ops: dem, features, graticule, icon, image, literal-geometry, point-grid, point-scatter, raster, tile-bounds.

Ops with no demo image below produce no visible result on their own — they feed other nodes rather than paint.

Sample a host-bound raster DEM as a ScalarField. source names a dem entry in the document’s sources block; omitting it falls back to the document’s only dem source, with a build warning.

Field Type Required Description
source string no Name of a dem source in the document’s sources block. Omitting it resolves to the only such source and warns at build time.

Sample features from a host-bound feature layer. source names an mvt/pmtiles/geojson entry in the document’s sources block (omitting it resolves to the only such source, with a build warning); layer selects a layer within that source (for geojson, the layer name equals the source name).

A tile rendered with features
Water polygons selected from the vector tile and filled flat. style
Field Type Required Description
filter-expr — no A MapLibre filter expression (JSON array, e.g. [“all”, [“==”, [“get”, “class”], “primary”], [“has”, “name”]]), evaluated per feature. A feature passes only when the expression is truthy. Supports the full expression language (any/has/comparisons/geometry-type).
layer string yes Vector tile layer name within source (e.g. earth, roads).
max-zoom integer (0…24) no Style-level maximum zoom. Above this zoom the node emits an empty layer.
min-zoom integer (0…24) no Style-level minimum zoom. Below this zoom the node emits an empty layer (the asset is not even loaded).
min-zoom-field string no Per-feature property name carrying its data-side min_zoom. Features with <field> > z are dropped.
source string no Name of an mvt, pmtiles, or geojson entry in the document’s sources. Omitting it resolves to the only such source and warns at build time.

Parallels and meridians crossing the tile, as labelled polylines.

A tile rendered with graticule
Parallels and meridians at the interval the zoom implies — every 0.01° here. Each line also carries a label property (35.68°N), so text can annotate them. style
Field Type Required Description
axes both | parallels | meridians no Which families to emit: parallels of latitude, meridians of longitude, or both.
extent integer (1…∞) no Coordinate extent of the emitted geometry, matching the features it is drawn alongside.
interval-deg number | $param | @node no Spacing in degrees. Omit to pick one from the zoom along the 30/10/5/2/1 ladder.

Crop one named icon from a sprite source’s atlas. sprite is an @sprite-source ref (or literal atlas key); name is the icon’s index key. Output is a Sprite at the icon’s atlas pixel size.

Field Type Required Description
name string yes —
sprite string yes Asset reference (@name) or literal path.

Image asset source. src is an @asset ref or a literal path/name resolved by the host’s AssetLoader. Output preserves the source dimensions.

Field Type Required Description
src string yes Asset reference (@name) or literal path.

Literal geometry source. Coordinates are tile-local pixels in [0, extent].

Field Type Required Description
extent integer (1…∞) no —
lines array of array of array of number no —
points array of array of number no —
polygons array of object no —

Regular lattice of points covering the tile.

A tile rendered with point-grid
A synthesized lattice of points, stamped with a small circle each. style
Field Type Required Description
anchor tile | world no —
extent integer (1…∞) no —
offset-x number | $param | @node no —
offset-y number | $param | @node no —
spacing number (0…∞) | $param | @node yes Grid pitch in extent units, not pixels — extent below is the coordinate space (4096 by default), so a 512 px tile fits 8 points at spacing: 512. Paint ops downstream take pixels, so the two do not match.
spacing-x number (0…∞) | $param | @node no —
spacing-y number (0…∞) | $param | @node no —

Random points at a given mean spacing, covering the tile. Where point-grid puts exactly one point in the middle of every cell, this one draws a count per cell — 0 to 3, averaging 1 — and places each point at a random spot inside it, so the set has the clumps and gaps of a real random scatter and no residual pitch. Reach for point-grid when the regularity is the point (a halftone screen, a tiling of panes to fracture) and for point-scatter when it is the enemy (stipple, foliage, grain, scattered symbols). Jittering a point-grid is not a substitute: one point per cell means an even density, and the lattice frequency stays plainly visible.

Field Type Required Description
anchor tile | world no world indexes the cells off global (0, 0), so adjacent tiles agree on the points they share and the scatter is seamless — the usual choice. tile indexes off the tile’s own corner, giving every tile the same point set and a visible seam.
extent integer (1…∞) no —
seed integer (0…∞) no Optional explicit u32 seed. Change it to get a different scatter at the same spacing, or to keep two point-scatter nodes from landing on each other. Default: a fixed constant, so the pattern is stable across tiles and runs.
spacing number (0…∞) | $param | @node yes Mean spacing in extent units, not pixels — one point per spacing × spacing cell on average. extent below is the coordinate space (4096 by default), so a 512 px tile averages 8 points across at spacing: 512. Paint ops downstream take pixels, so the two do not match.
spacing-x number (0…∞) | $param | @node no —
spacing-y number (0…∞) | $param | @node no —

Sample a host-bound RGBA tile pyramid (satellite imagery, pre-rendered basemaps) as a canvas-padded Raster. source names a raster entry in the document’s sources block; omitting it falls back to the document’s only raster source, with a build warning.

Field Type Required Description
source string no Name of a raster source in the document’s sources block. Omitting it resolves to the only such source and warns at build time.

Tile-filling rectangle polygon source.

A tile rendered with tile-bounds
The tile’s own extent as one polygon, filled translucently. style
Field Type Required Description
extent integer (1…∞) no —

Map renders on this site are made fromOpenStreetMap data viaProtomaps (© OpenStreetMap contributors), elevation from Re:Earth Terrain,Mapterhorn andEGM2008 (NGA), and aerial imagery from GSI Japan(© 国土地理院). The painterly styles use CC0 brushes byDavid Revoy.