目录

  • 操作过程

    • 获取 DEM 地形文件
    • DEM 拼接
    • tif 转 terrain
      • 工具1:Cesium Terrain Builder

        • Ubuntu 上 Cesium Terrain Builder 的安装过程
      • 工具2:Cesiumlab 工具箱
    • 加载
    • 参考

操作过程

获取 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 zlib1gsudo 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.gzcd gdal-2.4.1
./configure
makemake 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.gzcd 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

Cesium 生成和加载离线地形相关推荐

  1. Cesium for UE4 加载离线地形和影像

    Cesium for UE4 加载离线地形和影像 CTB 切片地形 编译cesium-terrain-builder {"tilejson": "2.1.0", ...

  2. java加载pmml模型文件报错_PMML总结与思考PMML模型生成和加载示例

    在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...

  3. Cesium|xt3d加载中国地形

    Cesium|xt3d加载中国地形 效果 代码 预览地址 效果 代码 <!DOCTYPE html> <html lang="zh-CN"><head ...

  4. arcgis xml 下载 切片_vue/cli3整合Cesium,加载离线arcgis 切片

    最開始使用webpack進行cesium 集成, 出现了问题一大堆,最后只好选择传统的方法直接引入了,具体操作如下 一.安装cesium 首选创建一个测试项目 vue create vue-join- ...

  5. 【UE4 Cesium】加载离线地图

    主体思路:先使用水经注软件下载瓦片数据,再使用Python转换瓦片数据格式(TMS),使用Nginx发布网络服务,最后将网络服务加载到UE中. 步骤: 使用水经注下载瓦片数据,这里下载的是全球七级地图 ...

  6. UE4 pak生成和加载

    本文转自:http://blog.csdn.net/u014532636/article/details/72844367 1.创建一个PAK文件: 用CMD运行打开D:\Epic Games\UE_ ...

  7. Cesium加载离线地图和离线地形

    文章目录 前言 一.Cesium加载离线地图 1.1 下载数据 2.2 数据处理 2.3 地图发布 2.4下载速度改进 二.Cesium加载离线地形 2.1 下载数据 2.2 数据处理 2.3 地形发 ...

  8. Cesium开源三维地球离线地图发布源码示例功能

    一.概述 Cesium开源三维地球离线地图发布源码提供了地图切换.查询定位.模型加载.专题图叠加显示和测量功能等,旨在为用户提供一个可以在Cesium快速加载离线地图或在线地图的解决方案,并提供技术支 ...

  9. cesium 3dtiles 加载本地数据_记一次Cesium地形数据生成过程

    问题描述 有一小块带高程值的点状数据,需要根据该数据生成Cesium支持的3dtiles数据,在Cesium中显示.经过一周多时间的摸索,终于能够在Cesium中加载成功.现将数据处理流程做个记录,以 ...

  10. Cesium 加载 离线的天地图影像瓦片

    Cesium 加载 离线的天地图影像瓦片 一.下载 天地图影像 通过水经注软件下载天地图影像(也许有其他下载方式). 1.下载 水经注软件 链接:http://www.rivermap.cn/down ...

最新文章

  1. java与fabric区块链--fabric-ca-server 注册---(3)
  2. 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )
  3. 全球及中国皮肤癌药物行业深度研究及项目可行性调研报告2022-2027年
  4. 功能、资源权限管理的设计
  5. 语法分析器自动生成工具一览
  6. [译]Java 垃圾回收介绍
  7. Java 知识总结大汇总!看完哪个都变大佬!
  8. 《信息熵,联合熵,条件熵,交叉熵,相对熵》
  9. pythontcp服务器如何关闭阻塞_利用Python中SocketServer 实现客户端与服务器间非阻塞通信...
  10. 数据预处理第3讲:归一化与离散化
  11. opencv车牌分割_OpenVINO车牌识别网络详解
  12. python中求2-1000的完数_C++求2→1000之间的完数。
  13. ylbtech-dbs:ylbtech-7,welfareSystem(福利发放系统)
  14. 在openSUSE-Leap-15.4-DVD-x86_64中使用佳能喷墨打印机ip2780
  15. Undefined class constant ‘SERIALIZER_IGBINARY‘ 解决方法
  16. 荣耀 android 5.0 root,华为EMUI5.0 可用的ROOT工具,我是作者!!!!——精华帖
  17. 实验二线性表的链式存储结构
  18. C语言进阶(一):宏函数内定义结构体
  19. 盘点老外对女人的爆笑称呼
  20. Linux环境Hadoop的下载安装

热门文章

  1. Mongo Java按日期查询
  2. 基础会计学习笔记4 会计核算基本方法(会计工作的主要内容)
  3. 如何对NTFS文件进行压缩和加密
  4. SCCM 2012 R2部署,SCCM配置(五)
  5. 《MySQL DBA: InnoDB_doublewrite/ChangeBuffer/AHI/FNP》
  6. 利用高德api定位当前位置
  7. Intellij IDEA设置类的文件头注释(@Author)(一)
  8. hdu 6638 Snowy Smile
  9. PTA 硬币找钱问题
  10. Java鸿鹄_(五)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--技术框架3