Cesium 生成和加载离线地图

2019/03/25 20:20
阅读数 2.3K

[TOC]

操作过程

获取 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

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部