Cesium-terrain-builder编译入坑详解
本以为编译cesium-terrian-tools编译应该没那么难,不想问题重重,不想后人重蹈覆辙,也记录下点点滴滴。
- 目前网上存在的cesium代码版本主要有两个分支:
- 原始网站【不能生成layer文件,且经久不更新,使用gdal2版本】:https://github.com/geo-data/cesium-terrain-builder
- docker分支版本 【可以生成layer文件,gzip需要单独设置修改,gdal版本和原网站要求不同】 ahuarte47/cesium-terrain-builder at master-quantized-mesh (github.com)
编译geo-data版本
链接编译,无法link GDALCreateOverviewDataset,gdal版本不对,可以暂行注释掉,应该是个扩展功能可以不管
//poSrcOvrDS = GDALCreateOverviewDataset( poSrcDS, iOvr, FALSE);poSrcOvrDS = nullptr;// GDALCreateOverviewDataset(poSrcDS, iOvr, FALSE, FALSE);}
ahuarte47 版本
-
git clone 后,记得要切换到最新代码,默认没有切换到最新代码,【坑】
-
gdal 307 或gdal204 使用时,可能出现部分重载函数声明不一致,需要改ctb源码即可解决
-
网上其他设置:
- 中文支持: GDALAllRegister后添加CPLSetConfigOption(“GDAL_FILENAME_IS_UTF8”, “NO”);
-
cesium 发布地形,默认需要关闭gzip,才可以被cesium加载
-
发布命令:
- 生成瓦片(本源码修改了默认不输出gzip格式,参考网上https://zhuanlan.zhihu.com/p/60908864)
ctb-tile.exe --output-dir H:/ctb_output H:/shenzhen_dem/L15/shenzhen_dem.tif -f Mesh- 生成layer
ctb-tile.exe --gzip --output-dir H:/ctb_output H:/shenzhen_dem/L15/shenzhen_dem.tif -f Mesh -l
上图为证:
Cesium-1.106版本加载terrian

cesium测试代码:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>html,body,#cesiumContainer {width: 100%;height: 100%;margin: 0;padding: 0;overflow: hidden;}</style><!-- Include the CesiumJS JavaScript and CSS files --><script src="../Build/CesiumUnminified/Cesium.js"></script><style>@import url(../Build/CesiumUnminified/Widgets/widgets.css);html,body,#cesiumContainer {width: 100%;height: 100%;margin: 0;padding: 0;overflow: hidden;}</style>
</head><body><div id="cesiumContainer"></div><script>Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0NzkzYjFkNi1mODZhLTRkNjAtYWE1YS1jYzE5NzBjNjhkNjciLCJpZCI6MTQyMjI1LCJpYXQiOjE2ODYyMzUxODl9.l8y5SN0ALIwPZh9eM8Al14DBpfMjHdeG7uqb69tH6nU';<!-- const viewer = new Cesium.Viewer('cesiumContainer'); -->const viewer = new Cesium.Viewer('cesiumContainer', {terrainProvider: new Cesium.EllipsoidTerrainProvider({}),//移除自带地形baseLayerPicker:false,homeButton:false,infoBox:false,timeline:false,navigationHelpButton:false,geocoder:false,sceneModePicker:false,animation:false,fullscreenButton:false});//viewer.imageryLayers.removeAll();var terrainProvider = new Cesium.CesiumTerrainProvider({url: './ctb_shenzhen_nogzip/'});viewer.scene.terrainProvider = terrainProvider;viewer.camera.flyTo({//destination: Cesium.Cartesian3.fromDegrees(121.8040466308, 29.9597, 2500)// 深圳destination: Cesium.Cartesian3.fromDegrees(114.1040466308, 22.5, 2500)}); </script>
</body></html>
## 参考:[基于Docker使用CTB生成地形切片并加载 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com)](https://www.cnblogs.com/jiujiubashiyi/p/17104115.html)非压缩:[Cesium地形切片--CTB(cesium-terrain-builder)填坑指南 - 知乎 (zhihu.com)](
相关文章:
Cesium-terrain-builder编译入坑详解
本以为编译cesium-terrian-tools编译应该没那么难,不想问题重重,不想后人重蹈覆辙,也记录下点点滴滴。 目前网上存在的cesium代码版本主要有两个分支: 原始网站【不能生成layer文件,且经久不更新,使用gdal…...
3.1 CPU内部结构与时钟与指令
CPU内部结构 总线一些自定义部件总线图内存指令执行流程:取指令,译码,执行pc做的事内存地址寄存器内存缓存寄存器指令寄存器,译码第一步指令寄存器传递地址到内存地址寄存器指令MOV_A的过程(译码第二步)第一条指令执行完毕第三条指令的执行第四条指令第四条指令不同的执行流程…...
电机应用-直流有刷电机多环控制实现
目录 直流有刷电机多环控制实现 硬件设计 直流电机三环(速度环、电流环、位置环)串级PID控制-位置式PID 编程要点 配置ADC可读取电流值 配置基本定时器6产生定时中断读取当前电路中驱动电机的电流值并执行PID运算 配置定时器1输出PWM控制电机 配…...
Java常量池理论篇:Class常量池、运行时常量池、String常量池、基本类型常量池,intern方法1.6、1.7的区别
文章目录 Class常量池运行时常量池String常量池基本类型常量池Integer 常量池Long 常量池 加餐部分 Class常量池 每个Class字节码文件中包含类常量池用来存放字面量以及符号引用等信息。 运行时常量池 java文件被编译成class文件之后,也就是会生成我上面所说的 …...
module java.base does not “opens java.io“ to unnamed module
环境 如上图所示, Runtime version的版本是JAVA 17 项目所需要JDK版本为JAVA 8 解决...
鸿蒙原生应用/元服务开发-AGC分发如何配置签名信息
使用制作的私钥(.p12)文件、在AGC申请的证书文件和Profile(.p7b)文件,在DevEco Studio配置工程的签名信息,以构建携带发布签名信息的APP。 1.打开DevEco Studio,菜单选择“File > Project S…...
【HTML5-webscoket实时通信(web)】
websocket是什么? 就是用来创建网络聊天室,实时通信websocket的方法有哪些? https://developer.mozilla.org/zh-CN/docs/Web/API/WebSockets如何实现:(以下实现流程) 前端: // 直播中// 聊天web…...
如何在Android平板上远程连接Ubuntu服务器code-server进行代码开发?
文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以,这里以VMwhere ubuntu系统为例 下载code serve…...
SAP Smartforms打印报错Error in spool C call : spool overflow
处理方式: SAP打印时提示: Error in spool C call : spool overflow (假脱机请求溢出,通俗一点打印池已满) 解决办法: SE38 首先运行程序RSPO1041 再运行RSPO1043,话不多说上图。...
SQL 中的运算符与别名:使用示例和语法详解
SQL中的IN运算符 IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写。 示例:获取您自己的SQL Server 返回所有来自’Germany’、France’或’UK’的客户: SELECT * FROM Customers WHERE Country IN (Germany, France, UK);语…...
3.2 CPU的自动化
CPU的自动化 改造1-使用2进制导线改造2根据整体流程开始改造指令分析指令MOV_A的开关2进制表格手动时钟gif自动时钟gif 根据之前的CPU内部结构改造,制造一个cpu控制单元 改造一 之前的CPU全由手动开关自己控制,极度繁琐,而开关能跟二进制一一对应, 开:1, 关:0图1是之前的, …...
深入理解@Resource与@Autowired:用法与区别解析
Resource: Resource 是Java EE提供的注解,也可以在Spring中使用。它是按照名称进行注入的,默认通过属性名(通常是类名的小驼峰命名方式)或者name属性来匹配。如果找不到符合名称的bean,则会抛出异常。在使…...
高级驾驶辅助系统 (ADAS)介绍
随着汽车技术持续快速发展,推动更安全、更智能、更高效的驾驶体验一直是汽车创新的前沿。高级驾驶辅助系统( ADAS ) 是这场技术革命的关键参与者,是 指集成到现代车辆中的一组技术和功能,用于增强驾驶员安全、改善驾驶体验并协助完成各种驾驶任务。它使用传感器、摄像头、雷…...
2 使用React构造前端应用
文章目录 简单了解React和Node搭建开发环境React框架JavaScript客户端ChallengeComponent组件的主要结构渲染与应用程序集成 第一次运行前端调试将CORS配置添加到Spring Boot应用使用应用程序部署React应用程序小结 前端代码可从这里下载: 前端示例 后端使用这里介…...
[计算机网络]运输层概述
虽然我自己也不知道写在前面和前言有什么区别..... 这个系列其实是针对<深入浅出计算机网络>的简单总结,加入了一点个人的理解和浅薄见识,如果您有一些更好的意见和见解,欢迎随时协助我改正,感激不尽啦. 最近心态平和了不少, 和过去也完全做了个割舍吧,既然痛苦和压力的…...
【分布式】分布式事务及其解决方案
目录 一、分布式事务二、分布式事务的解决方案1. 全局事务(1)DTP模型(2) 两阶段提交协议(2PC)原理二阶段提交的缺点 (3)三阶段提交协议(3PC)原理 2. 基于可靠…...
【文末送书】机器学习高级实践
2023年初是人工智能爆发的里程碑式的重要阶段,以OpenAI研发的GPT为代表的大模型大行其道,NLP领域的ChatGPT模型火爆一时,引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升,它能够同时接受图像和文本的输入…...
吉他初学者学习网站搭建系列(1)——目录
文章目录 背景文章目录功能网站地址网站展示展望 背景 这个系列是对我最近周末搭建的吉他工具类平台YUERGS的总结。我个人业余爱好是自学吉他,我会在这个平台中动手集成我认为很有帮助的一些工具,来提升我的吉他水平和音乐素养,希望也可以帮…...
qgis添加arcgis的mapserver
左侧浏览器-ArcGIS地图服务器-右键-新建连接 Folder: / 展开-双击图层即可...
关于「光学神经网络」的一切:理论、应用与发展
/目录/ 一、线性运算的光学实现 1.1. 光学矩阵乘法器 1.2. 光的衍射实现线性运行 1.3. 基于Rayleigh-Sommerfeld方程的实现方法 1.4. 基于傅立叶变换的实现 1.5. 通过光干涉实现线性操作 1.6. 光的散射实现线性运行 1.7. 波分复用(WDM)实现线性运…...
UE5蓝图开发必备:SimpleByteConversion插件实战教程(含结构体转换技巧)
UE5蓝图开发必备:SimpleByteConversion插件实战教程(含结构体转换技巧) 在Unreal Engine 5的蓝图开发中,数据序列化和网络通信是绕不开的难题。特别是当项目需要处理大量结构化数据时,如何高效地在蓝图间传递和存储这些…...
RMBG-2.0抠图工具功能体验:蒙版查看、原图对比、一键下载
RMBG-2.0抠图工具功能体验:蒙版查看、原图对比、一键下载 1. 为什么选择RMBG-2.0进行本地抠图? 在日常工作和生活中,我们经常需要处理图片背景去除的需求。无论是电商产品图、设计素材还是个人照片,一个高效、精准的抠图工具可以…...
Android Framework开发必备:手把手教你为Android Studio配置AOSP源码跳转与调试环境
Android Framework深度开发实战:构建AOSP源码调试环境全指南 当你在Android系统层开发中遇到一个神秘的崩溃日志,或是需要修改某个核心服务的行为时,能否像调试应用层代码一样在Framework源码中自由跳转、设置断点?本文将带你从零…...
别再只盯着正点原子例程了!STM32标准库驱动霍尔编码器测速,我的配置避坑心得分享
STM32标准库驱动霍尔编码器测速:从原理到实战的深度避坑指南 霍尔编码器作为电机控制中不可或缺的反馈元件,其稳定可靠的测速实现一直是嵌入式开发者关注的焦点。虽然正点原子等经典教程提供了基础实现框架,但在实际工业场景中,从…...
Java GC 调优:从理论到实战
Java GC 调优:从理论到实战 在现代Java应用中,垃圾回收(GC)性能直接影响系统的吞吐量、延迟和稳定性。随着微服务和高并发场景的普及,GC调优从“可选技能”变成了开发者的必修课。本文将带你从基础理论到实战技巧&…...
别再手动调色了!用MATLAB bar函数绘制多组堆叠柱状图的配色自动化技巧
MATLAB堆叠柱状图配色自动化:告别手动调色的高效解决方案 科研图表绘制中,堆叠柱状图是展示多维度数据的利器,但每次手动设置子柱颜色的繁琐操作让不少研究者头疼。想象一下,当你处理包含20组数据、每组5个子柱的复杂图表时&#…...
2026年降AI率工具排行榜怎么选?3招避开智商税
2026年毕业季一到,朋友圈、知乎、小红书上铺天盖地的"降AI率工具排行榜"就开始刷屏。今天这家说"全网第一",明天那家又"权威评测",榜单的前三名永远在换人。我帮三届学弟学妹选过工具,也自己踩过不少坑,今天就…...
WorkshopDL:解锁Steam创意工坊的跨平台模组下载神器
WorkshopDL:解锁Steam创意工坊的跨平台模组下载神器 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否曾经在Epic Games Store或GOG平台购买了游戏,…...
别再乱接线了!手把手教你排查家庭网线故障,从百兆到千兆的实战修复记录
家庭网络布线排错指南:从百兆瓶颈到千兆速率的实战修复 去年升级千兆宽带后,书房始终测速只有92Mbps——这个数字对网络工程师来说再熟悉不过,正是百兆以太网的物理极限。当我发现全屋六类网线竟被装修队接成四线制时,才意识到那些…...
Matlab助力特性曲线调参指南:如何让EPS系统既省电又灵敏?
Matlab助力特性曲线调参实战:EPS系统能耗与灵敏度的黄金平衡点 在汽车电子工程领域,电动助力转向系统(EPS)的性能优化一直是工程师们面临的挑战。如何让方向盘在低速时轻盈灵活,高速时又保持稳重感观,同时还…...
