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; optional when the document declares exactly one such source.

Field Type Required Description
source string no Name of a dem source in the document’s sources block. Optional when there is exactly one.

Sample features from a host-bound feature layer. source names an mvt/pmtiles/geojson entry in the document’s sources block (optional when exactly one exists); 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. Optional — defaults to the only such source when the document declares exactly one.

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; optional when the document declares exactly one such source.

Field Type Required Description
source string no Name of a raster source in the document’s sources block. Optional when there is exactly one.

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.