SDK JS
    Preparing search index...

    Interface BvcMapLibreLayerOptions

    Configuration for BvcMapLibreLayer. id and anchor are required, plus one source — either a url or an already-decoded preloaded model; everything else has a default. placement is the friendly way to orient, scale and seat the asset, and it is mutually exclusive with the deprecated basis (the constructor throws if both are given). A .bvc asset carries either gaussian splats or points, so only the matching one of splat / point applies to a given file.

    interface BvcMapLibreLayerOptions {
        anchor: GeoAnchor;
        basis?: Mat4;
        cullStray?: boolean | { factor?: number };
        decoder?: Decoder;
        id: string;
        onClassifications?: (classes: ClassificationInfo[]) => void;
        onLoaded?: () => void;
        placement?: ModelPlacement;
        point?: Partial<PointCloudOptions>;
        preloaded?: { model: DecodedModel; tiles: readonly DecodedTile[] };
        splat?: Partial<SplatOptions>;
        url?: string;
        wasmInit?: WasmHostInit;
    }
    Index

    Properties

    anchor: GeoAnchor

    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 model's robust median centers on the anchor).

    basis?: Mat4

    Raw local-frame → mercator basis with EXACT legacy semantics: replaces the internal mercator Y-flip, anchors the capture's local origin, and disables auto-centering. Mutually exclusive with placement.

    Prefer placement — it covers axis conventions, heading/ pitch/roll, scale, and anchoring without matrix math.

    cullStray?: boolean | { factor?: number }

    Cull the far-outlier "stray" splats a 1:1 transcode carries (the giant ghost sphere around the subject) — default ON; false for a faithful render, { factor } to tune (multiple of the 90th-percentile distance from the robust center; default 1.5).

    decoder?: Decoder

    Override the decoder (default: in-process BvcDecoder).

    id: string

    Layer id.

    onClassifications?: (classes: ClassificationInfo[]) => void

    Fired once the point cloud has loaded, with the LAS classification codes it contains (code/label/count) — populate a class show/hide checklist from it. Only fires for point-cloud assets that carry a classification attribute.

    onLoaded?: () => void

    Notified once all tiles have streamed in.

    placement?: ModelPlacement

    Friendly placement — up-axis preset, heading/pitch/roll (degrees), scale, and anchor point (ModelPlacement); tune at runtime with BvcMapLibreLayer.setPlacement. Mutually exclusive with the legacy basis (the constructor throws if both are given). Default: Z-up source, no rotation, scale 1, 'center' anchoring (robust median — outlier-halo-proof; choose 'bottom-center'/'top-center' to seat the base or the top at the anchor altitude instead).

    point?: Partial<PointCloudOptions>

    Initial point-cloud render options (color mode, hidden classes, point size, …); merged over the defaults.

    preloaded?: { model: DecodedModel; tiles: readonly DecodedTile[] }

    Render already-decoded tiles instead of fetching a URL (in-memory source).

    splat?: Partial<SplatOptions>

    Initial gaussian-splat render options (SH toggle, color mode, …); merged over the defaults.

    url?: string

    URL of the .bvc asset to load. Omit when supplying preloaded.

    wasmInit?: WasmHostInit

    Cross-origin wasm bootstrap for the default BvcDecoder (point wasmInit at your hosted bvc wasm). Ignored when a custom decoder is supplied.