[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