开源全球地理空间数据可视化框架——Cesium学习(2023.8.21)_github上关于cesium的项目-程序员宅基地

技术标签: 学习  信息可视化  开源  前端学习  

1、Cesium简介

        作为一个开源的、世界级的、展现3D全球地图的JavaScript类库,Cesium毫无疑问已然成为WebGIS开发中三维地球框架的首选,

Alt

1.1 Github上的Cesium

        截止当前,Github上的Cesium已经收获了10.8K的star,因其具有良好的文档、示例、问答及讨论社区、扎实的生态而广受好评,目测版本的更新频率大概为 once a month,需要查看源码学习的小伙伴一定要认准官方仓库哦!

在这里插入图片描述

2、Cesium下载安装使用

        一般而言,Cesium框架基于JavaScript脚本语言编写,可轻松应用到客户端的html项目当中,随着应用的不断深入,前端生态、类库框架的不断涌现,这个三维地球类库自然也能够无孔不入,被适用到各种开发环境下,总的来说,主要存在以下三种方式来调用。

2.1 方式一:页面在线引用

        直接引用官网在线的JS库及样式,或者引用CDN等公网服务器上的JS库和样式来体验和使用相关功能。

2.2 方式二:页面离线使用

        基于源码和Nodejs编译器进行编译,生成离线的类库、样式、文档及API,便于学习和断网离线环境开发,

2.3 方式三:完整项目使用

        比如,在Vue或Vite等前端项目中,安装依赖包或在index.html页面手动引入编译后的离线JS库及样式,全局使用Cesium即可。

3、CesiumJS学习教程(快速上手 + API文档)

        在学习Cesium地图框架之余,一定要记得多看官方提供的快速上手API文档,以便学习框架中代码的调用。同时可以看到该文档是由JSDoc类库编译而来,感兴趣的伙伴们可以基于此类库来编译自己的JS代码生成对应的API文档哦!

在这里插入图片描述

4、Cesium官方示例

        不得不说,自问世之日起,Cesium官方就对这套地理空间数据展示与分析框架有了很高的战略定位,正所谓高瞻远瞩、深谋远虑,正如星星之火可以燎原、雨后春笋长势迅猛,一项新的事物之所以变得伟大,那一定是基于长远的布局打算突破当下的独特眼光放眼全球的伟大格局等出发点,正是因为有人默默坚持,有人愿意去做看似不起眼而大多数人不愿去做、看似简单但实则不易的事情,年轻的心灵、激动的双手给Coder们留下了无比广阔的发展舞台和空间

        从用户需求出发,用技术创造价值,以品质感动用户,我认为,市场(Market)-用户(User)-服务(Service)-产品(Product)-技术(Technology)-价值(Value)-真理(Truth)-科学(Science)仿佛一个生生不息的循环链条:从实际出发,市场存在诸多用户、服务和产品,产品和服务源于技术和价值,最终还得归功于科学、真理和实践,等同于从实际出发可以回到实践,经得起实践之后的市场已然成为实际的事实,而且无可争议
        为了快速熟悉Cesium强大的地图可视化功能、多样的数据类型以及丰富的展现方式,我们可在Cesium官方沙盒中尽情浏览、体验和沉浸式交互。

Cesium示例集合

5、Cesium源码下载编译(前提环境——已安装Nodejs)

        大家如果想要认真学习WebGL功能,有兴趣和激情且执着的朋友可按照如下命令来下载Cesium源码,认真学习代码背后的理论依据,需要地图投影、GIS、空间几何、数学变换、前端Canvas等方面的知识基础,对于功能定制化的需求和插件封装堪称经典!!!(注:自1.100版本以后,Cesium源码中的文件夹风格发生较大变化,新增packages文件夹,里面又分为了engine和widgets两个子文件夹,每个子文件夹下存放源码而1.100版本以前的Cesium核心源码均存放在Source文件夹下,需要格外注意Cesium不同版本的使用,仔细来看还是比较有差异性的,具体可到changeLog页面进行查看哦!!!)

在这里插入图片描述
        Cesium代码采用RollupGulp工具进行流水线式打包、压缩及编译,因此推荐基于NodejsWindows系统全局安装gulp依赖包,然后便可对js源码进行封装打包,具体还应仔细查看gulp.js、server.js和README等文件仔细琢磨,用node 运行server.js本质是基于express依赖库启动了本地文件服务器可在Web上公开访问,支持自定义端口号,相信认真阅读之后大家想必会有不少收获和感慨哟!!!️️️

git clone https://github.com/CesiumGS/cesium.git
cd cesium
npm install gulp --global
npm install
gulp --tasks
gulp clean
gulp build
gulp release
node server.js --public --port 8082

6、CesiumAPI文档和沙盒本地部署(启动)

        在对Cesium源码编译成功后,大家就能够得到编译后自动生成的API文档和沙盒样例,

7、基于Cesium框架二次开发的厂商、类库及SDK

7.1 超图(SuperMap)

        超图官网示例中的SuperMap iClient3D for Cesium展示了自研的效果及功能,包含源代码编辑器可在线实时运行调试,尤其值得广大WebGIS开发者借鉴!!!

7.2 西部世界(EarthSDK)

         EarthSDK示例集合给大家提供了代码编辑及效果在线执行的窗口界面,可供开发者们测试效果及研究学习相关功能哦!!!

7.3 火星(Mars3D)

         Mars3D官网功能示例中有较为丰富的演示代码及效果,可供广大的开发者认真揣摩及学习交流!!!

7.4 xt3d

        基础示例 | xt3d中给大家展示了不少的Demo演示效果及功能,是个学习Cesium代码的好地方,可查看具体示例打开源代码编辑器实时运行哦!!!

7.5 dc-sdk

        数字视觉——Digital Visual for Cesium添加了许多效果演示,可供开发者快速搭建WebGIS应用,可以按需求查看示例呀!!!

7.6 d3kit

        cesium-d3kit作为一个基于Cesium的基础功能封装包,其封装的三方插件功能十分强大,不失为学习Cesium源码的绝佳之地,在cesium-examples二三维展示工具中提供了相当宝贵的插件学习资料,实属作者辛苦分享,功底深厚,细心总结,十分难得!!!

7.7 数字孪生(digitaltwin)

        在DigitalTwin官网中的Cesium开发示例列表中可以学习其相关的效果及分析功能哦,三方插件中封装的功能非常全面,有时间可以认真学习一下!!!

7.8 AIRLOOK(DataEarth)

        在DataEarth官网的示例代码中可以查看丰富的Cesium示例,如影像、地形、分析和插件等,非常值得借鉴!!!

7.9 恒歌科技(FreeXGIS)

        在恒歌地理信息云服务平台的v1.0的开发示例中包含标绘、量算、场景特效、环境事件、气象水文Demo,可供开发者参考学习!!!

7.10 大象云(X-Base)

        在X-Base示例当中的CIM引擎部分也利用Cesium作为底层地图引擎支持,展示了相机、地形、特效、分析等演示效果,也是一个学习Cesium代码的好地方!!!

7.11 葛兰岱尔(BIMGISEngine)

        葛兰岱尔有着“中国数字孪生3D轻量化技术专家”的美称,在智能建造、智慧园区、电子沙盘仿真等方面进行了深入的应用示范,底层技术是基于Cesium二次开发,研发BIMGISEngine引擎插件功能,并且提供了许多与GIS+BIM相关的示例,可供大家虚心借鉴和参考哦!!!

7.12 Wish3D Earth

        Wish3D支持数据的快速共享。支持海量实景三维模型、影像、地形数据、三维模型的加载和展示;支持多种矢量数据格式的加载和展示,具备多种数据的场景构建与场景对比、单体化、模型压平、矢量标绘等特色应用;同时提供了不少样例及API接口文档,尽管目前并不完善,但其中许多效果仍然可以供大家借鉴、学习和思考哦!!!

7.13 Drawsee

        Drawsee是由北京朝夕科技有限责任公司从底层自研的WebGIS框架,专注性能和渲染效果,在微观仿真、BIM、矢量切片、光影渲染方面大显身手,拥有详细的开发指南API文档可供大家体验学习。

8、总结

        正如实践是检验真理的唯一标准,事实胜于雄辩。山不在高,有仙则名;水不在深,有龙则灵。希望各位软件开发者和工程师们不仅能够望梅止渴,珍惜现在网络信息、数字化技术蓬勃飞速发展的时代和机会,抓住前所未有的历史机遇实现自己的人生价值,更应该学会饮水思源,物尽其用,坚持真理,勇于实践,用一腔热血将丰硕的成果落实在祖国的大地上。

        值得强调的是,绿色、健康的开源生态需要千千万万的技术爱好者、开发者和工程师们共同营造和维护开源并非一朝一夕,开源不仅仅是海纳百川的情怀,更是一种乐观精神和积极心态的传承大家不论国籍、不论性别、不论年龄、不论种族、不论地域,为了解决当下的问题,相聚在社区一起探讨、交流和共享,眼界得以开阔,思想得以丰富,境界得以提升,心态得以乐观

        愿自己不忘来时路,时常心怀感恩以真心拥抱开源,用热情坚持分享,在此与诸位共勉!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jing_zhong/article/details/125553141

智能推荐

笔记本电脑怎么拆开后盖_笔记本电脑拆机、清灰、散热处理流程-程序员宅基地

文章浏览阅读2.5w次,点赞2次,收藏2次。拆机不复杂,备好工具材料、对照步骤就可以上手,关键是把螺丝分类放好。01 材料工具准备电脑型号:华硕A45V笔记本电脑(操作步骤都是相似的,具体拆机方法各类电脑稍有区别)工具材料:“十字”型螺丝刀、硅脂、塑料片、P.S. 螺丝刀建议家中备一套简便的就行(下方链接),硅脂买笔记本电脑用的散热硅脂(微信上没找到链接,拼多多或京东上有,几块钱),塑料片用不用的校园卡、银行卡等等(也可以买..._笔记本后盖怎么拆

Mac系统下Sublime Text内调试JavaScript代码_mac sublime 调试typescript项目-程序员宅基地

文章浏览阅读2.7k次。问题:我想单独调试一段JavaScript代码而不是嵌入到网页端执行 工具: Sublime Text解决问题: 一、安装node.js 当然你也可以使用jsc环境来运行js,这里我们使用node.js来运行, 安装成功查询:在终端中输入 node -v会输出node版本号二、配置编译文件 SublimeText中 Tools -> Build System -> N..._mac sublime 调试typescript项目

使用Docker在windows上安装IBM MQ_win系统中,可视化工具连接其他服务上的ibmmq-程序员宅基地

文章浏览阅读859次,点赞18次,收藏8次。Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察。

软考—系统集成管理工程师备考经验_信息系统管理工程师真题百度云-程序员宅基地

文章浏览阅读362次,点赞6次,收藏8次。关于软考--系统集成管理工程师的学习总结和教训_信息系统管理工程师真题百度云

淘宝/天猫自定义API操作 API接口,custom-自定义API操作-程序员宅基地

文章浏览阅读887次,点赞24次,收藏23次。淘宝/天猫平台本身并不直接提供“自定义API操作”的官方API接口。API接口通常是由平台方定义和提供的,用于开发者与平台进行数据交互。然而,淘宝/天猫开放平台允许商家和开发者通过其提供的官方API进行一系列的操作,这些API覆盖了商品管理、订单处理、用户信息、物流查询等多个方面。您可以利用淘宝/天猫开放平台提供的官方API,通过组合多个API调用,来实现您自定义的业务逻辑。这可能需要一定的编程能力和对平台API的深入理解。

Ubuntu 16.04简易安装Nginx-rtmp-module_libnginx-mod-rtmp_1.22.0-1ubuntu3_amd64.deb-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏5次。Ubuntu 16.04简易安装Nginx-rtmp-modulelibnginx-mod-rtmp是18.04上自带的,可以通过apt-get install libnginx-mod-rtmp进行安装,在16.04上如果想要安装,直接下载libnginx-mod-rtmp_1.14.0-0+xenial1_amd64.deb安装的话会被告知nginx版本过低,依赖有问题,需要16.04自带的..._libnginx-mod-rtmp_1.22.0-1ubuntu3_amd64.deb

随便推点

24西安电子科技大学833 834考研经验(涵盖各个阶段复习计划)_西电833-程序员宅基地

文章浏览阅读928次,点赞16次,收藏13次。还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领取方式在文末!!

软件设计师(五)软件工程基础知识_1)可行性分析与项目开发计划 这个阶段主要确定软件开发的目标及其可行性,明确要解-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏26次。软件工程基础知识_1)可行性分析与项目开发计划 这个阶段主要确定软件开发的目标及其可行性,明确要解

js将list转化为tree格式的几种写法_js list to tree-程序员宅基地

文章浏览阅读1.8k次。最近在考虑一个树状结构存储。最终需要将list转化为tree格式源数据示例源数据共401条[{ "menuId" : "5f50c5fb8f0d74536bbfb7a4", "menuName" : "菜单管理", "parentMenuId" : null },{ "menuId" : "5f524416ff216c2cbc554907", "menuName" : "频道管理", "parentMenuId" : "5f50c5fb8f0d74536bbfb7a4" },{ "menuId"_js list to tree

《游戏开发》html5 益智小游戏-小熊吃星星-程序员宅基地

文章浏览阅读962次,点赞17次,收藏26次。你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取!!!自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

Java模拟面试总结,新网银行java面试-程序员宅基地

文章浏览阅读534次,点赞9次,收藏14次。无论是哪家公司,都很重视基础,大厂更加重视技术的深度和广度,面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。针对以上面试技术点,我在这里也做一些分享,希望能更好的帮助到大家。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)一个人可以走的很快,但一群人才能走的更远。

centos出现类似-bash: ls: command not found...和-bash: /bin/vi: input/output error的错误_-bash: /usr/libexec/pk-command-not-found: input/ou-程序员宅基地

文章浏览阅读7.5k次。centos出现类似-bash: ls: command not found...和-bash: /bin/vi: input/output error的错误_-bash: /usr/libexec/pk-command-not-found: input/output error

推荐文章

热门文章

相关标签