Cesium 生成和加載離線地圖

[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

相關文章
相關標籤/搜索