Cesium 生成和加载离线地形
目录
- 操作过程
- 获取 DEM 地形文件
- DEM 拼接
- tif 转 terrain
- 工具1:Cesium Terrain Builder
- Ubuntu 上 Cesium Terrain Builder 的安装过程
- 工具2:Cesiumlab 工具箱
- 工具1:Cesium Terrain Builder
- 加载
- 参考
操作过程
获取 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.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 生成和加载离线地形相关推荐
- Cesium for UE4 加载离线地形和影像
Cesium for UE4 加载离线地形和影像 CTB 切片地形 编译cesium-terrain-builder {"tilejson": "2.1.0", ...
- java加载pmml模型文件报错_PMML总结与思考PMML模型生成和加载示例
在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...
- Cesium|xt3d加载中国地形
Cesium|xt3d加载中国地形 效果 代码 预览地址 效果 代码 <!DOCTYPE html> <html lang="zh-CN"><head ...
- arcgis xml 下载 切片_vue/cli3整合Cesium,加载离线arcgis 切片
最開始使用webpack進行cesium 集成, 出现了问题一大堆,最后只好选择传统的方法直接引入了,具体操作如下 一.安装cesium 首选创建一个测试项目 vue create vue-join- ...
- 【UE4 Cesium】加载离线地图
主体思路:先使用水经注软件下载瓦片数据,再使用Python转换瓦片数据格式(TMS),使用Nginx发布网络服务,最后将网络服务加载到UE中. 步骤: 使用水经注下载瓦片数据,这里下载的是全球七级地图 ...
- UE4 pak生成和加载
本文转自:http://blog.csdn.net/u014532636/article/details/72844367 1.创建一个PAK文件: 用CMD运行打开D:\Epic Games\UE_ ...
- Cesium加载离线地图和离线地形
文章目录 前言 一.Cesium加载离线地图 1.1 下载数据 2.2 数据处理 2.3 地图发布 2.4下载速度改进 二.Cesium加载离线地形 2.1 下载数据 2.2 数据处理 2.3 地形发 ...
- Cesium开源三维地球离线地图发布源码示例功能
一.概述 Cesium开源三维地球离线地图发布源码提供了地图切换.查询定位.模型加载.专题图叠加显示和测量功能等,旨在为用户提供一个可以在Cesium快速加载离线地图或在线地图的解决方案,并提供技术支 ...
- cesium 3dtiles 加载本地数据_记一次Cesium地形数据生成过程
问题描述 有一小块带高程值的点状数据,需要根据该数据生成Cesium支持的3dtiles数据,在Cesium中显示.经过一周多时间的摸索,终于能够在Cesium中加载成功.现将数据处理流程做个记录,以 ...
- Cesium 加载 离线的天地图影像瓦片
Cesium 加载 离线的天地图影像瓦片 一.下载 天地图影像 通过水经注软件下载天地图影像(也许有其他下载方式). 1.下载 水经注软件 链接:http://www.rivermap.cn/down ...
最新文章
- java与fabric区块链--fabric-ca-server 注册---(3)
- 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )
- 全球及中国皮肤癌药物行业深度研究及项目可行性调研报告2022-2027年
- 功能、资源权限管理的设计
- 语法分析器自动生成工具一览
- [译]Java 垃圾回收介绍
- Java 知识总结大汇总!看完哪个都变大佬!
- 《信息熵,联合熵,条件熵,交叉熵,相对熵》
- pythontcp服务器如何关闭阻塞_利用Python中SocketServer 实现客户端与服务器间非阻塞通信...
- 数据预处理第3讲:归一化与离散化
- opencv车牌分割_OpenVINO车牌识别网络详解
- python中求2-1000的完数_C++求2→1000之间的完数。
- ylbtech-dbs:ylbtech-7,welfareSystem(福利发放系统)
- 在openSUSE-Leap-15.4-DVD-x86_64中使用佳能喷墨打印机ip2780
- Undefined class constant ‘SERIALIZER_IGBINARY‘ 解决方法
- 荣耀 android 5.0 root,华为EMUI5.0 可用的ROOT工具,我是作者!!!!——精华帖
- 实验二线性表的链式存储结构
- C语言进阶(一):宏函数内定义结构体
- 盘点老外对女人的爆笑称呼
- Linux环境Hadoop的下载安装
热门文章
- Mongo Java按日期查询
- 基础会计学习笔记4 会计核算基本方法(会计工作的主要内容)
- 如何对NTFS文件进行压缩和加密
- SCCM 2012 R2部署,SCCM配置(五)
- 《MySQL DBA: InnoDB_doublewrite/ChangeBuffer/AHI/FNP》
- 利用高德api定位当前位置
- Intellij IDEA设置类的文件头注释(@Author)(一)
- hdu 6638 Snowy Smile
- PTA 硬币找钱问题
- Java鸿鹄_(五)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--技术框架3