Cesium开发手册

2024-08-26 14:58
文章标签 开发 手册 cesium

本文主要是介绍Cesium开发手册,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Cesium开发手册

  • Cesium介绍
    • 功能
    • 支持数据格式
    • Cesium知识体系
    • Cesium在项目中的定位
    • Cesium学习路线
    • Cesium进阶之路 (3大方向)
    • Cesium周边
    • AGI
      • Cesium.com
      • Cesium.github

Cesium介绍

Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品。它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以及多平台,易用性上都有高质量的保证。
在这里插入图片描述
Cesium隶属于AGI公司,该公司一直致力于时空数据业务。正如很多开源项目都有一个个性化的名字,Cesium也不例外。Cesium原意是化学元素铯,铯是制造原子钟的关键元素,通过命名强调了Cesium产品专注于基于时空数据的实时可视化应用。

功能

通过Cesium提供的JS API,可以实现以下功能:
• 使用 3d tiles格式流加载各种不同的 3d 数据,包含 倾斜摄影、人工模型、 三维建筑物、CAD、BIM,点云数据等。 并支持样式配置和用户交互操作。 并支持样式配置和用户交互操作
• 全球高精度地形数据可视化,支持夸张效果、以及可编程实现的等高线和坡度分析效果。
• 支持多种资源的图像层,包括 WMS,TMS, WMTS以及时序图像。支持透明度叠加, 亮度、对比度、GAMMA、色调、饱和度都可以动态调整。支持图像的卷帘对比。
• 支持标准的矢量格式 KML 、GeoJSON、TopoJSON, 以及矢量的贴地效果。
• 三维模型支持 gltf2.0 标准的 PBR 材质、动画蒙皮和 和 变形效果。 贴地以及高亮
• 使用 CZML 支持动态时序数据的展示。
• 支持各种几何体:点、 线、面、标注、公告牌、立方球、椭球体、圆柱走廊 (corridors)、管径、墙体
• 可视化效果包括:基于太阳位置的阴影、自身阴影,柔和阴影。
• 大气、雾、太阳、阳光、月亮、星星、水面。
• 粒子特效:烟、火花。
• 地形、 模型3d tiles模型的面裁剪。
• 对象点选和地形点选。
• 支持鼠标和触摸操作的缩放、 渲染、惯性平移、飞行、任意视角、地形碰撞检测。
• 支持 3d 地球、 2d 地图、 2.5d 哥伦布模式。 3d 视图可以使用透视和正视两种投影方式。
• 支持点、标注公告牌的聚集效果。
• 测量和注释,测量距离和面积, 并向3d 地图添加注释。
测量包
包括:
测量工具
剪裁平面编辑器
转换编辑器
测量工具
以任何比例精确测量任何物体或多个物体之间的距离,无论是测量桥梁的高度、从无人机到地面的距离,还是徒步旅行路线的长度。
任意两点之间的距离,可选择水平和垂直锁定
高于地形点的高度
多边形面积测量
任意点的纬度、经度、高度和坡度
剪裁平面编辑器:
添加和配置剪裁平面以显示内部或检查由结构或地形遮挡的数据。
视域包
包括:
测量工具
剪裁平面编辑器
变换编辑器
传感器几何和可见性分析工具
其他几何图形
传感器几何和可见性分析工具
有效地了解传感器可视性对无人机,卫星,自动驾驶车辆或任何静止或移动物体的影响。
GPU加速的视线,视域和可见性分析
多种传感器几何形状,包括锥形,矩形和圆顶
定制传感器几何形状
其他几何图形
可视化其他静态和动态3D形
• 样式和查询,使用数据的属性来设置模型的样式并探索您的世界。
• 执行分析,使用 cesium 的3d 分析执行3d 地理空间分析, 使您能够评估3d 地图中任何点的上下文。
• 查看随时间变化,一流的时间动态模拟和4d 可视化支持。
在这里插入图片描述
地形影像、模型、倾斜、二三维场景与时态数据

支持数据格式

在这里插入图片描述

Cesium知识体系

Cesium 是一个跨界SDK,涉及三个知识领域 : Web前端、计算机图形学、地理信息系统(GIS)。
在这里插入图片描述

Cesium在项目中的定位

*强调文本* _强调文本_

Cesium学习路线

API学习路线图,按下图顺序学习相关类。

图![Alt](https://avatar.csdn.net/7/7/B/1_ralf_hx163com.jpg

在这里插入图片描述
学习方法:从官方教程、官方示例开始学习,带着需求去学,学会查询API文档,学会Github去看源码。善用百度、谷歌、QQ群。

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

Cesium进阶之路 (3大方向)

• Web前端方向:Cesium与webpack (裁剪以及压缩),Cesium 与vue (框架设计, 嵌入复杂业务系统), Cesium的UI (UI 设计,定制可复用的Cesium交互界面)
• 图形学方向:WebGL深入,基于Cesium 的可视化定制(视阈、水淹、水面、热力图,流场图、飞线图、扫描图)
• 数据预处理方向:投影变换, 空间索引, LOD , 3dtile 生成,数据存储, 数据分发服务,解决超大空间数据如何在 Cesium上流畅可视化的问题。

Cesium周边

当然,Virtual Earth可以是一个很大的领域,既可以涉及到卫星航空领域等专业领域,也能够关联气象,导航等大众应用,可以说是包罗万象。Cesium不仅专注于产品本身,也致力于打造一个开放的,共赢的生态平台,为具体的行业应用提供成熟可靠的解决方案。
下面,我们了解一些和Cesium关联比较密切的公司和组织。

Cesium每个月月初更新一次版本,会在官网提供下载链接。最近官网进行了一次比较大的改版,域名从org升级到com,种种迹象表明,Cesium后续会通过Composer和3D Tiles标准,提供数据托管和发布能力,值得期待。

AGI

AGI的英文全称为Analytical Graphics Incorporation,三位创始人曾在通用公司宇航部的供职工程师,提供STK(System/Satellite Toolkit Kit)和Cesium两款产品。该公司是航天分析软件的领导者,而STK则是该公司的旗舰产品。比如马航MH370搜救过程就采用了STK软件。经过多年来在时空数据的积累,AGI公司逐渐掌握了大量3D可视化技术,也感受到各行各业对海量3D数据的强烈需求,因此于2011年创建了cesiumjs开源项目,围绕Cesium生态圈打造了一套安全可靠易扩展且平台独立的企业级解决方案。而Chrome也是在2011年2月份推出了支持WebGL的第一个版本,在这点上,Cesium算是第一个敢吃螃蟹的人。
AGI网站的口号是“Mapping Space And Time”,也强调了时空的概念。博客中有很多很棒的文章,比如相机抖动(Precisions, Precisions),计算bounding sphere的优化等,可惜网站改版后这些博文就失传了。

Cesium.com

Cesium每个月月初更新一次版本,会在官网提供下载链接。最近官网进行了一次比较大的改版,域名从org升级到com,种种迹象表明,Cesium后续会通过Composer和3D Tiles标准,提供数据托管和发布能力,值得期待。
在这里插入图片描述
另外,对于Cesium开发者,建议把Cesium官网的博客都读一遍,博客大概分为三类,主要是技术类,比如性能优化,调度算法等,一类是定期的新版本特性,能够了解Cesium新功能和新特性,还有一类是大事记,比较轻松,不妨感受一下Cesium的团队文化。下图是部分成员的照片,,而Patrick Cozzi(下图红框)俨然已经是心中的精神导师,原始资料来自Cesium-Carto-BOF。
在这里插入图片描述
其次是论坛,如果有什么疑问,都可以在这里提问。个人而言,如果有一些复杂的,个人不太确定的问题,我会在里面和相关人讨论,比如glTF在RTC扩展属性下不支持NEU坐标系的转换,3D Tiles中batch id的设计等,都比较适合在此交流。

Cesium.github

当然,最后要推荐的就是Cesium在Github的社区。Cesium遵循Apache License 2.0,无论是个人还是商业用途,可以任意修改源码不用开源,需要声明该产品使用了Cesium,比如Cesium.js,LICENSE.MD;MODIFICATIONS.md声明你的修改清单。 因为我所在的公司是基于Cesium构建的WebGL产品,毕竟涉及到知识产权和法律风险还有人品,因此和Cesium的人简单交流过,总体上他们是很宽松的,当然也希望你能做出更多的贡献。
作为一项非主流的JS开源库,相比Three.js这种大众类应用,Cesium的关注数并不算太多(2.4k),所以,如果喜欢,大家不要吝惜自己的神之一击哦~。个人推荐wiki的内容,虽然内容很少,毕竟是官方写的,质量有保证。
其次就是提交缺陷和代码了,如果你是个人用户,想要提交代码,需要签署cla,通过email发送,只有通过后才能提交到主版本。个人觉得Cesium在代码控制上还是比较严格的,单元测试覆盖率达到了93%,CI持续集成,任何人提交的代码都需要确保单元测试没有出错,但有时候会出现很多莫名其妙的问题。
另外,在提交代码前,建议阅读一下Cesium的编码规范。自己在提交代码上深深体会到Cesium对Review,Test Unit以及CI的要求,只有每个人都严格执行,这些无形的价值也能潜移默化的影响团队的每一个成员,同时也会产生一种责任感和成就感主动维护。

https://github.com/lishulincug/cesium

这篇关于Cesium开发手册的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108893

相关文章

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录