用途:为 MapLibre GL JS 地图添加地形可视化,包括山体阴影(hillshade)、高程配色(color-relief)、动态等高线和 3D 地形,并帮助选择与配置高程数据源。
主要能力:说明 DEM、raster-dem 与 hillshade 的区别;raster-dem 源把高程编码进 PNG/WebP 像素,需按数据实际格式设置 encoding。Terrarium 公式为 (R256+G+B/256)-32768,常见于 AWS Terrain Tiles、Mapterhorn 等开放源;Mapbox 公式为 (R256256+G256+B)*0.1-10000,常见于 MapTiler terrain-rgb。编码写错不会报错,只会导致地形平坦、反转或夸张。hillshade 图层在 layers 中定义,无需 setTerrain(),可调 illumination-direction、exaggeration、shadow/highlight/accent 颜色,并用 hillshade-method(如 multidirectional)替代多层叠加。color-relief 按高程区间着色。maplibre-contour 可在运行时从 raster-dem 生成矢量等高线,通过 setupMaplibre 注册协议,thresholds 按缩放级别设置主次等高距。3D 地形需 raster-dem 源并调用 map.setTerrain({source, exaggeration}),且相机需设置 pitch 才可见,地平线处可加 sky 图层。
使用方式:先确认数据源编码,再配置 raster-dem 源;按需添加 hillshade、color-relief、等高线或 3D 地形图层。若只需静态地形背景,可改用预计算 raster 瓦片,但这类瓦片不含编码高程,无法驱动客户端 hillshade、color-relief、3D 地形或运行时等高线。
适用场景:地形底图、交互式 3D 场景、高程分析可视化、从 Mapbox 地形迁移到开放数据源、自托管 DEM 瓦片及排查地形显示异常。
限制:MapLibre 不直接读取 GeoTIFF,也不提供 DEM 瓦片生成工具,仅消费 raster-dem 瓦片;坡度、坡向、曲率等通常需在 GIS 中预计算。地形瓦片大小随缩放与地形复杂度变化,不能按固定 KB 估算体积。3D 地形与多层叠加会增加解码、网格构建和绘制开销,低端设备或高俯仰角下应保持图层精简、夸张系数保守。部分数据源需密钥,具体可用端点与自托管方式暂未提供。