Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品。它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以及多平台,易用性上都有高质量的保证。

通过Cesium提供的JS API,可以实现以下功能:

全球级别的高精度的地形和影像服务

矢量以及模型数据

基于时态的数据可视化

多种场景模式(3D,2.5D以及2D场景)的支持,真正的二三维一体化

1.35版推出3D Tiles规范,支持海量模型数据(倾斜,BIM,点云等)

地形影像、模型、倾斜、二三维场景与时态数据

Cesium隶属于AGI公司,该公司一直致力于时空数据业务。正如很多开源项目都有一个个性化的名字,Cesium也不例外。Cesium原意是化学元素铯,铯是制造原子钟的关键元素,通过命名强调了Cesium产品专注于基于时空数据的实时可视化应用。

Cesium周边

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

下面,我们了解一些和Cesium关联比较密切的公司和组织。

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新功能和新特性,

其次是论坛,如果有什么疑问,都可以在这里提问。个人而言,如果有一些复杂的,个人不太确定的问题,我会在里面和相关人讨论,比如glTF在RTC扩展属性下不支持NEU坐标系的转换,3D Tiles中batch id的设计等,都比较适合在此交流。

Cesium.github

当然,最后要推荐的就是Cesium在Github的社区。Cesium遵循Apache License 2.0,无论是个人还是商业用途,可以任意修改源码不用开源,需要声明该产品使用了Cesium,比如Cesium.js,LICENSE.MD;MODIFICATIONS.md声明你的修改清单。

作为一项非主流的JS开源库,相比Three.js这种大众类应用,Cesium的关注数并不算太多(2.4k),所以,如果喜欢,大家不要吝惜自己的神之一击哦~。个人推荐wiki的内容,虽然内容很少,毕竟是官方写的,质量有保证。

其次就是提交缺陷和代码了,如果你是个人用户,想要提交代码,需要签署cla,通过email发送,只有通过后才能提交到主版本。个人觉得Cesium在代码控制上还是比较严格的,单元测试覆盖率达到了93%,CI持续集成,任何人提交的代码都需要确保单元测试没有出错,但有时候会出现很多莫名其妙的问题。

另外,在提交代码前,建议阅读一下Cesium的编码规范。自己在提交代码上深深体会到Cesium对Review,Test Unit以及CI的要求,只有每个人都严格执行,这些无形的价值也能潜移默化的影响团队的每一个成员,同时也会产生一种责任感和成就感主动维护。

浏览器支持

首先,检查一下你的浏览器是否支持WebGL。 目前,大多数平台和浏览器都支持WebGL,在这些环境下运行Cesium并没有太大的问题,但效果和性能是否能够满足不同的需求,就需要考虑很多细节和额外因素。 大多数平台和浏览器都支持WebGL1.0标准,也就是OpenGL ES2.0规范。2017年年初,Chrome新版本低调的支持WebGL2.0,随着各硬件厂商GPU性能的提升和WebGL2.0规范的成熟,WebGL技术会有更大的提升潜力。 首先,无论是PC还是移动端,Chrome是WebGL开发和应用的最佳平台,所以,如果没有特殊的硬性要求,建议大家使用Chrome学习和开发Cesium。

通过浏览器访问WebGL Report网站,获取浏览器对WebGL的支持清单。如上图,红线是我最关心的几个属性:

是否支持WebGL标准

是否支持ANGLE 扩展: Chrome通过该扩展,在Windows平台下将OpenGL接口转为D3D,不仅提升了性能,而且还可以支持实例化这一重要特性

是否支持深度纹理: 拾取等功能依赖于深度技术

顶点着色器的最大属性数: 一个功能自从诞生之初,就开始趋于复杂,所以我们还要清楚它的极限,合理控制产品的复杂度。

个人了解,目前IE11对WebGL支持的还可以,但不支持深度纹理,需要升级到Edge;在移动平台,Cesium的地球调度比较消耗资源,目前的硬件能力并不太适合,比如内存崩溃,机器发烫。我的思路是在移动端仅支持平面场景,只是一个局部坐标,节约地球调度的性能消耗。

Documentation

里面是Cesium的完整的API说明,里面可以找到:

  • 某一个模块的所有函数,属性
  • 部分效果截图
  • 部分函数,属性调用代码示例

缺点:搜索功能不够强大

Sandcastle

这是一个沙盒,你可以在里面

  • 浏览当前版本的一些功能特性
  • 一个可运行的代码库
  • 新建一个页面,进行代码测试
  • 导出测试代码

参考:http://cesium.xin/wordpress/archives/16.html

Cesium是什么,简介相关推荐

  1. Cesium 系列1 - 简介及源码下载发布

    1.简介 cesium 一个开源的javascript三维虚拟地球/地图可视化框架,目标是动态数据可视化的虚拟地球领导者,尽一切可能去优化性能.精度.效果,易用性.平台支撑.内容 cesium特点: ...

  2. Cesium雷达效果

    Cesium雷达效果 简介 效果 总结 简介 最近实验室在做Cesium相关的项目,基本上就现学现做开始弄Cesium.最开始写这个雷达的时候,本着CV的编程思想,在网上找到了一个远古版本的插件(1. ...

  3. WEBGIS开发 常用开发功能简介 数据处理 标绘 业务数据可视化 视频融合 Cesium EarthSDK

    WEBGIS开发总结: 本人2020年测绘工程硕士毕业后就参加了某国企研究所做前端开发了,前端三板斧都是跟着网上的网课一点点学习的,因为本人从事行业的关系,很多项目都跟地图开发相关,比如什么仿真系统/ ...

  4. WebGL、ThreeJS、BabylonJS、SceneJS和Cesium框架对比及简介

    主要介绍WebGL的各个框架的特点,适用范围,优缺点以及相关网址范例:以便于后续更快速的开发,提高生产效率,最后进行总结: 一. BabylonJS(开源;JavaScript.TypeScript) ...

  5. 转载---Cesium简介

    转载---https://blog.csdn.net/mrib/article/details/78260971 Cesium是什么 Cesium 是一款面向三维地球和地图的,世界级的JavaScri ...

  6. Cesium简介及发展历史

    目录 1.什么是Cesium 2.以下是Cesium的发展历史: 3.Cesium近年来一直在不断发展和更新,以下是Cesium目前的一些进展: 4.Cesium目前的功能 5.Cesium学习 1. ...

  7. cesium等高线_Cesium开源三维地球离线地图发布源码示例功能

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

  8. Cesium Workshop

    参考资料: https://cesiumjs.org/tutorials/Cesium-Workshop/ https://github.com/geoadmin/workshop-cesium3d ...

  9. java 开源地图引擎_开源三维地图框架-Cesium

    简介 优点:有较多的demo,详细的api文档,有测试平台,比较丰富的展示特性和扩展. 效果展示 加载底图(天地图) 存在 飞行.复位等实用工具 数据的加载和显示 cesium支持topojson,G ...

最新文章

  1. 全自动驾驶“生死时速”,特斯拉收购计算机视觉创企DeepScale
  2. McAfee----McAfee 2008 中文版
  3. 暗杀TIME-WAIT
  4. Ubuntu解决gedit warning问题的方法
  5. 时间轴ui设计_我应该在UI设计上花更多时间吗?
  6. MFC开发- string、const char*、 char* 、char[]相互转换(全)
  7. defaultlib library conflicts with use of other libs; use /NODEFAULTLIB:library
  8. 私域经济运营能力最关键的三个指标
  9. ROS | 机器人操作系统简介
  10. java applet开发_Java Applet程序开发步骤
  11. 【xinfanqie】美女逢泽莉娜win7主题_8.3
  12. HTML标签常用标签
  13. 厉害了,用 Java 也能实现图片识别!
  14. 2月19日CTF记录
  15. 《猎头局中局》——摘要
  16. 怎样判断路由器的好坏和选择路由器?
  17. 企业微信员工离职如何转移客户?
  18. C++中的sort函数排序(快速排序)
  19. 【T+】畅捷通T+存货档案批量修改存货属性
  20. Nginx: 正向与反向代理

热门文章

  1. L298N模块的连接与使用(stm32驱动与51驱动)
  2. c语言双精度浮点数,使用C语言的十进制(浮点数,双精度)
  3. IDEA中WEB项目结构和Artifacts设置
  4. python 打包exe_python pyinstaller打包exe报错的解决方法
  5. 学网络安全需要什么基础?
  6. dataframe去掉索引 python_DataFrame按索引删除行、列
  7. SecureCRT常用文件操作命令
  8. navigation Bar、toolBar、tabbar 区别
  9. autojs实用文档
  10. 爬虫抓取某饿了app商铺的评论数据