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

相关文章
相关标签/搜索