GeoLibre 3D地形实战:用自己的DEM作为地形数据源并调节垂直夸张
【免费下载链接】GeoLibreA lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs in the web browser, on the desktop, on mobile, and inside Jupyter notebooks.项目地址: https://gitcode.com/GitHub_Trending/ge/GeoLibre
GeoLibre 是一款轻量级、云原生的开源 GIS 平台,可以在浏览器、桌面端、移动端和 Jupyter 笔记本中运行。本文将带你完成GeoLibre 3D 地形的实战操作:开启 3D 地形渲染、用自己的 DEM(COG 格式的 GeoTIFF)替换默认地形数据源,并调节垂直夸张,让山脊与河谷的细节一目了然。
为什么要用自己的DEM当3D地形数据源?
GeoLibre 默认使用一套全球地形瓦片(AWS Open Data Terrain Tiles)来渲染 3D 地形,无需任何配置。但默认瓦片是全球级、精度有限的通用模型,如果你有:
- 本地采集或下载的高分辨率 DEM(如 SRTM、ALOS、LiDAR 生成的地形);
- 以COG(Cloud Optimized GeoTIFF)格式托管在线上的高程数据;
就可以一键替换掉默认源,用自己的 DEM驱动地图上的 3D 地形,实现局部高精度渲染。
一键开启3D地形渲染:操作步骤
- 打开Controls(控件)菜单,确认已勾选Terrain(地形控件会显示在地图右上角,图标是一座小山);
- 单击地形图标:开启 3D 地形,地图立即呈现山体起伏;再单击一次可关闭;
- 按住
Ctrl/Cmd拖动地图可切换倾斜视角,更好地观察地形形态。
相关实现见 map-controls.md 中 Terrain 一行的说明。
调节垂直夸张:0到5倍一键拉伸
垂直夸张(Vertical Exaggeration)是放大地形起伏的倍数,用于让平缓地貌的细节"站起来":
- 1.0(默认值):真实比例,高程不做放大;
- 0:地形被压平,等同于 2D 视图;
- 2~3:适合丘陵、盆地等起伏较小的区域,细节更清晰;
- 5:滑块上限,山势被强烈拉伸,适合演示和讲故事。
操作很简单:双击地图上的地形图标,弹出地形设置对话框,拖动滑块(步长 0.1)或直接在数字框输入精确值,效果实时生效。对话框底部还有"重置"按钮,可一键回到默认值 1.0。
这个限制范围由一个纯函数模块统一管理,方便测试:terrain-exaggeration.ts;对话框的完整实现见 TerrainSettingsDialog.tsx。
加载自己的DEM:COG URL或本地GeoTIFF
在地形设置对话框的下半部分,就是替换地形数据源的地方:
| 方式 | 操作 |
|---|---|
| 在线 COG URL | 在 "COG DEM URL" 输入框粘贴你的 COG 文件地址,点击Use COG DEM |
| 本地 GeoTIFF 文件 | 在文件选择器中选择本地的.tif/.tiff文件,自动加载 |
| 恢复默认源 | 点击Restore Default Source,回到全球地形瓦片 |
DEM 文件需要满足什么条件?
- 单波段(第 1 波段作为高程);
- 投影为EPSG:4326(经纬度)或EPSG:3857(Web Mercator);
- 推荐 COG 格式(带金字塔概览的 GeoTIFF),读取效率最高。
不满足条件时,界面会给出明确的错误提示(空源、波段不支持、投影不支持),而且当前正在使用的好好工作的地形源不会被破坏——新的 COG 会先打开并校验成功,才替换生效。
整个"浏览器内读取 COG → 按瓦片读取 → 编码为 Terrarium 高程格式 → 注册为 MapLibre 地形源"的流水线,实现在 cog-dem-source.ts;对外暴露的setTerrainCogSource、setTerrainExaggeration等 API 则集中在 map-controller.ts。
进阶技巧:让3D地形发挥更大价值
- 配合高程读数:开启Elevation控件后,鼠标悬停即可在状态栏看到指针下的地面高程;
- 地形感知测量:Measure 工具在 3D 地形开启时提供Terrain (3D)段,测出贴地真实的距离与坡向;
- 飞行模拟:Flight Simulator 工具可以让你用键盘"飞"过自己 DEM 渲染出的山谷与山脊;
- 垂直夸张会随项目保存:设置的夸张值缓存在地图控制器中,刷新样式或开关控件后依然保留,无需每次重新调节。
常见问题快速排查
| 症状 | 原因与解法 |
|---|---|
| 加载 COG 提示投影不支持 | 确认 DEM 是 EPSG:4326 或 EPSG:3857,其他投影请先重投影 |
| 多波段 GeoTIFF 无法用作地形 | 地形源只使用第 1 波段,请确保高程在波段 1 |
| 地形看起来太平、没起伏 | 双击地形图标,把垂直夸张调到 2 或 3 试试 |
| 本地文件加载后想换回默认 | 点击Restore Default Source即可 |
总结
| 能力 | 说明 |
|---|---|
| 3D 地形开关 | 单击地形图标,默认全球地形瓦片 |
| 垂直夸张调节 | 双击地形图标,0~5 倍实时调节,默认 1.0 |
| 自定义 DEM 源 | 支持在线 COG URL 与本地 GeoTIFF |
| 格式要求 | 单波段、EPSG:4326 / EPSG:3857 |
用 GeoLibre 完成"自己的 DEM 上 3D 地形 + 垂直夸张调节"不需要安装任何服务器或 GIS 桌面软件——数据读取、地形渲染、夸张计算全部发生在浏览器里,数据不出本机。打开 GeoLibre,双击那座小山图标,你的 DEM 3D 地形之旅就从这里开始 🏔️
【免费下载链接】GeoLibreA lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs in the web browser, on the desktop, on mobile, and inside Jupyter notebooks.项目地址: https://gitcode.com/GitHub_Trending/ge/GeoLibre
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考