Raster DEM Source
A raster-dem source describes RGB-encoded elevation tiles. It powers both:
- terrain meshing — via a
terrainlayer, and - hillshade / elevation-heatmap — via a
rasterlayer (the layer supplies thehillshade/elevationHeatmaprender options).
The RGB→height decoding is configured by elevationDecoder.
Properties
Section titled “Properties”| Property | Type | Default | Description |
|---|---|---|---|
type | "raster-dem" | (required) | Source type. |
url | string | (required) | Tile URL template (contains {z}/{x}/{y}). |
tms | boolean | false | Whether the tile scheme is flipped along the Y axis (TMS). |
elevationDecoder | ElevationDecoder | default decoder | How RGB channels decode into a height value. |
tileSize | number | 256 | Pixel size of a DEM tile. |
minZoom | number | 0 | Minimum zoom level tiles are provided for. |
maxZoom | number | 20 | Maximum zoom level new tiles are requested for. |
overscaledMaxZoom | number | 24 | Maximum zoom overscaled tiles are used up to. |
Examples
Section titled “Examples”import ThreeView, { TERRARIUM_ELEVATION_DECODER } from "@navaramap/three";
const dem = view.addSource({ type: "raster-dem", url: "https://example.com/dem/{z}/{x}/{y}.png", elevationDecoder: TERRARIUM_ELEVATION_DECODER(), tileSize: 512, maxZoom: 17,});
// As 3D terrainview.addLayer({ type: "terrain", source: dem });
// As a hillshade raster layer (same source reused)view.addLayer({ type: "raster", source: dem, hillshade: { exaggeration: 1.5 } });Elevation Decoder
Section titled “Elevation Decoder”The elevationDecoder describes how the tile’s RGB(A) channels decode into a height value.
Pre-defined constants
Section titled “Pre-defined constants”@navaramap/three provides decoder constants for common elevation tile providers:
| Constant | Use case |
|---|---|
JAPAN_GSI_ELEVATION_DECODER() | Japan’s Geospatial Information Authority (GSI) elevation tiles |
MAPBOX_ELEVATION_DECODER() | Mapbox Terrain-RGB tiles |
TERRARIUM_ELEVATION_DECODER() | Terrarium format elevation tiles |
import ThreeView, { JAPAN_GSI_ELEVATION_DECODER } from "@navaramap/three";
view.addSource({ type: "raster-dem", url: "https://cyberjapandata.gsi.go.jp/xyz/dem_png/{z}/{x}/{y}.png", elevationDecoder: JAPAN_GSI_ELEVATION_DECODER(),});Custom decoder
Section titled “Custom decoder”You can also pass an explicit decoder object:
| Property | Type | Description |
|---|---|---|
r_scaler | number | Red channel scaler. |
g_scaler | number | Green channel scaler. |
b_scaler | number | Blue channel scaler. |
offset | number | Height offset. |
max_offset | number | Maximum offset value. |
min_offset | number | Minimum offset value. |
boundary | number | Boundary value. |
epsilon | number | Epsilon (small value). |
{ elevationDecoder: { r_scaler: 256.0, g_scaler: 1.0, b_scaler: 1.0 / 256.0, offset: -32768.0, max_offset: 8848.0, min_offset: -11034.0, boundary: 0.01, epsilon: 0.001, },}Related Resources
Section titled “Related Resources”- About Source
- Terrain Layer / Raster Layer
- TerrainMaterial — terrain rendering options
- HillshadeMaterial / ElevationHeatmapMaterial