目录
操作过程 获取 DEM 地形文件DEM 拼接tif 转 terrain 工具1:Cesium Terrain Builder Ubuntu 上 Cesium Terrain Builder 的安装过程工具2:Cesiumlab 工具箱加载参考操作过程
获取 DEM 地形文件
网上有多种公开的全球 DEM 地形数据,包括 GDEM、SRTM、DLR 等,也有很多下载渠道,就不一一列举了,感兴趣的朋友可以在参考资料里详细了解。我个人选择的是数据来源地理空间数据云,经测试下载速度很快。下载好的文件中包含一个 XXX_dem.tif 文件、一个 XXX_num.tif 文件以及一个 README.pdf 文件。其中 XXX_dem.tif 文件为所需的 DEM 文件。
DEM 拼接
由于 CTB 不支持多张 tif 生成地形文件,因此需要地形文件进行拼接,由于笔者不是 GIS 专业出身,这部分内容不太熟悉,只了解常用工具为 ArcGIS 和 QGIS,就不详细描述了。
tif 转 terrain
工具1:Cesium Terrain Builder
Cesium Terrain Builder是一个用于创建 terrain 文件的 C++ 库,包含对应的命令行工具。其 windows 安装过程比较复杂,有很多坑要踩,因此笔者选择了较为简单的 linux 安装方式。
Ubuntu 上 Cesium Terrain Builder 的安装过程
升级 apt-getsudo apt-get update
安装 makesudo apt-get install make
安装 gccsudo apt-get install gcc
安装 g++sudo apt-get install g++
安装 Cmakesudo apt-get install cmake
安装 Rubysudo apt-get install ruby
安装 zlibsudo apt-get install zlib1g
,sudo apt-get install zlib1g.dev
安装 gdal
wget /gdal/CURRENT/gdal-2.4.1.tar.gztar -xzvf gdal-2.4.1.tar.gzcd gdal-2.4.1./configuremakemake install
安装 Cesium Terrain Builder
wget /geo-data/cesium-terrain-builder/archive/v0.4.1.tar.gztar -xzvf v0.4.1.tar.gzcd cesium-terrain-builder-0.4.1/mkdir buildcd buildcmake ..
安装过程中可能会缺少其他组件,查看错误列表补充安装即可。
在安装 gdal 和 Cesium Terrain Builder 后,可能会出现 "error while loading shared libraries: xxx.so.x" 的错误,可能是由于文件安装在了 /usr/local/lib 目录下,需要将该目录加入到配置文件/etc/ld.so.conf
中,可使用vim 编辑器或以下命令。
cat /etc/ld.so.confsudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf"# 更新 ldconfigldconfig
安装完成后输入ctb-tile -V
查看 Cesium Terrain Builder 版本。
安装完成后即可使用GitHub中的脚本说明进行转换操作了,需要注意的是 Cesium Terrain Builder 不会生成 layer.json 文件,需要用cesium-terrain-builder-docker生成。
工具2:Cesiumlab 工具箱
官方网站为/,其自身带了免费的地形处理功能,鉴于 ctb 复杂的安装过程,可采用该工具箱完成地形转换操作,由于操作过程较为简单,此处就不详述了。
生成完成后的目录结构如图所示:
加载
文件生成完成后可使用直接发布为文件服务,在 Cesium 中使用以下代码加载即可:
viewer.terrainProvider = new Cesium.CesiumTerrainProvider({url: "/offline-terrain-url"})
参考
DLR、ASTER GDEM、SRTM3、GMTED等5种全球高程数据对比by VANGE
SRTM、ASTER GDEM等全球数字高程数据(DEM)下载方式简介by VANGE
地理空间数据免费获取(一)by GIS_KHF
Cesium 生成terrain地形数据----CTB方式及步骤by 大大大大大碗面
Linux下安装gdalby TheOneGIS
"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法by sahusoft