SDK JS
    Preparing search index...
    • Read a tileset's declared vertical CRS WKID.

      Parameters

      Returns number | undefined

      The vertical CRS WKID, or undefined when the tileset declares none. Feed the result to datumFromVcsWkid (@bitruvius/maplibre) to auto-place a 3D-Tiles dataset by its true height.

      3D Tiles itself defines no vertical-datum field: content is positioned into ECEF via root.transform and heights are ellipsoidal by construction, so any orthometric-referenced dataset conveys its datum out of band. Extensions are the spec's sanctioned mechanism for that, and two publishers use it:

      • Esriextensions.ESRI_crs.vcsWkid, a plain code. Preferred when present.
      • Skylineextensions.SKYLINE_o3dml_Header, as compound WKT. original_wkt is the dataset's own CRS; terrain_wkt describes the terrain it was draped on, so it is only a fallback — seating against it would use a datum the geometry is not in.

      Reading both is conformant: SKYLINE_o3dml_Header appears in extensionsUsed, not extensionsRequired, so a client may read or ignore it either way.

      A tileset that declares nothing returns undefined, and that is deliberate rather than a gap to paper over: the no-declaration population is not homogeneous. Google Photorealistic, Cesium OSM Buildings and the ion photoreal meshes declare nothing yet carry ELLIPSOIDAL heights, while a dataset like 3DBAG declares nothing and is already gravity-related (NAP). Any blanket default would place one group correctly and the other wrongly, so the caller is told "no signal" and decides.