RasterDEMSourceSchema
constRasterDEMSourceSchema:ZodEffects<ZodObject<{attribution:ZodOptional<ZodString>;bounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;encoding:ZodDefault<ZodEnum<["terrarium","mapbox","custom"]>>;maxzoom:ZodOptional<ZodNumber>;minzoom:ZodOptional<ZodNumber>;tiles:ZodOptional<ZodArray<ZodEffects<ZodString,string,string>,"many">>;tileSize:ZodDefault<ZodNumber>;type:ZodLiteral<"raster-dem">;url:ZodOptional<ZodString>;volatile:ZodOptional<ZodBoolean>; },"passthrough",ZodTypeAny,objectOutputType<{attribution:ZodOptional<ZodString>;bounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;encoding:ZodDefault<ZodEnum<["terrarium","mapbox","custom"]>>;maxzoom:ZodOptional<ZodNumber>;minzoom:ZodOptional<ZodNumber>;tiles:ZodOptional<ZodArray<ZodEffects<ZodString,string,string>,"many">>;tileSize:ZodDefault<ZodNumber>;type:ZodLiteral<"raster-dem">;url:ZodOptional<ZodString>;volatile:ZodOptional<ZodBoolean>; },ZodTypeAny,"passthrough">,objectInputType<{attribution:ZodOptional<ZodString>;bounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;encoding:ZodDefault<ZodEnum<["terrarium","mapbox","custom"]>>;maxzoom:ZodOptional<ZodNumber>;minzoom:ZodOptional<ZodNumber>;tiles:ZodOptional<ZodArray<ZodEffects<ZodString,string,string>,"many">>;tileSize:ZodDefault<ZodNumber>;type:ZodLiteral<"raster-dem">;url:ZodOptional<ZodString>;volatile:ZodOptional<ZodBoolean>; },ZodTypeAny,"passthrough">>,objectOutputType<{attribution:ZodOptional<ZodString>;bounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;encoding:ZodDefault<ZodEnum<["terrarium","mapbox","custom"]>>;maxzoom:ZodOptional<ZodNumber>;minzoom:ZodOptional<ZodNumber>;tiles:ZodOptional<ZodArray<ZodEffects<ZodString,string,string>,"many">>;tileSize:ZodDefault<ZodNumber>;type:ZodLiteral<"raster-dem">;url:ZodOptional<ZodString>;volatile:ZodOptional<ZodBoolean>; },ZodTypeAny,"passthrough">,objectInputType<{attribution:ZodOptional<ZodString>;bounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;encoding:ZodDefault<ZodEnum<["terrarium","mapbox","custom"]>>;maxzoom:ZodOptional<ZodNumber>;minzoom:ZodOptional<ZodNumber>;tiles:ZodOptional<ZodArray<ZodEffects<ZodString,string,string>,"many">>;tileSize:ZodDefault<ZodNumber>;type:ZodLiteral<"raster-dem">;url:ZodOptional<ZodString>;volatile:ZodOptional<ZodBoolean>; },ZodTypeAny,"passthrough">>
Defined in: packages/core/src/schemas/source.schema.ts:644
Raster DEM (digital elevation model) source configuration.
Remarks
Section titled “Remarks”Elevation tiles consumed by hillshade layers and by map-level 3D
terrain: (TerrainSchema in map.schema). Shaped like
RasterSourceSchema — the same url-or-tiles requirement and
tileSize — plus the encoding that says how elevation is packed into
RGB. Custom encodings carry redFactor/greenFactor/blueFactor/
baseShift through passthrough, matching MapLibre.
Map-level 3D terrain was once a declared non-goal here; 0.7 (U15, ml-chh.5)
reversed that. Declare the DEM as a named source and point the document-root
terrain: { source, exaggeration } at it. encoding defaults to mapbox
even when url: points at a TileJSON that declares otherwise, so set it
explicitly for terrarium tiles.
Example
Section titled “Example”source: type: raster-dem tiles: - "https://example.com/dem/{z}/{x}/{y}.png" encoding: terrarium tileSize: 256