Where the model sits (lng/lat/altitude). Which local point lands here is
placement.anchorPoint — top/middle/bottom, origin, or an explicit point
(default 'center': the capture's robust median centers on the anchor).
OptionalcullCull the far-outlier "stray" splats 3DGS captures carry (ghost fog over the map)
before upload — default ON; false for a 1:1 faithful decode, { factor } to tune.
Forwarded to the default SpzContainerDecoder; with a custom decoder it runs as a
layer-level pass over the decoded tiles instead.
OptionaldecoderOverride the decoder (default: in-process SpzContainerDecoder).
Layer id.
OptionalonNotified once the splat cloud has streamed in.
OptionalplacementFriendly placement — up-axis preset, heading/pitch/roll (degrees), scale,
and anchor point (ModelPlacement); tune at runtime with
SpzMapLibreLayer.setPlacement. This layer defaults upAxis to
'y' (SPZ captures come from the glTF/3DGS ecosystem, where Y-up is the
dominant convention) — override per capture when needed.
OptionalpreloadedRender already-decoded tiles instead of fetching a URL (in-memory source).
OptionalsplatInitial gaussian-splat render options (SH toggle, color mode, …); merged over the defaults.
OptionalurlURL of the .spz file to load (any SPZ version v1–v4). Omit when supplying preloaded.
OptionalwasmCross-origin wasm bootstrap for the default SpzContainerDecoder (point wasmInit
at your hosted turbospz wasm). Ignored when a custom decoder is supplied.
Configuration for SpzMapLibreLayer.
idandanchorare required, plus one source — either aurlto the.spzfile or an already-decodedpreloadedmodel; everything else has a default.placementis the field to reach for after those two: it presetsupAxis: 'y'here, so a typical capture only needs a heading and a scale. Stray-splat culling is on by default and happens inside the default decoder — passcullStray: falsefor a 1:1 faithful decode.