Cesium 生成和加載離線地圖


操作過程

獲取 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-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 編輯器或以下命令。

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 中的腳本說明進行轉換操作了,需要注意的是 Cesium Terrain Builder 不會生成 layer.json 文件,需要用 cesium-terrain-builder-docker 生成。

工具2:Cesiumlab 工具箱

官方網站為https://www.cesiumlab.com/,其自身帶了免費的地形處理功能,鑒於 ctb 復雜的安裝過程,可采用該工具箱完成地形轉換操作,由於操作過程較為簡單,此處就不詳述了。

生成完成后的目錄結構如圖所示:
目錄結構

加載

文件生成完成后可使用直接發布為文件服務,在 Cesium 中使用以下代碼加載即可:

viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
    url: "/offline-terrain-url"
})

參考

DLR、ASTER GDEM、SRTM3、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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM