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