热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于cesium和mars3d海洋三维管线信息系统开发完工总结

从8月20日开始着手开发海洋三维管线信息系统,到今天9月20日,刚好一个月,基本完成了自己最初的设想。博主也终于摆脱了这个困扰自己5-6年的梦魇(夸张了)。这个项目来源于单位为了鼓

        从8月20日开始着手开发海洋三维管线信息系统,到今天9月20日,刚好一个月,基本完成了自己最初的设想。博主也终于摆脱了这个困扰自己5-6年的梦魇。这个项目来源于单位为了鼓励年轻人创新,在内部设立的科技项目。这个项目也申请了好几年,一直没有上,  可能是审题老师觉得这个项目过于庞大,个人无法完成。博主后来基本上放弃了,后来政策发生了变化,领导突然想到这个项目,博主不好意思拒绝了领导的好意,只有硬着头皮上了。当时,博主即将步入中年了,应该不适宜与年青人抢项目了。

       开发过程也是比较曲折,早先申请时,可以正常使用skyline,等项目批下来后,license就过期了,需要改电脑时间才能使用,不胜其烦,诸多不便,就抛弃了skyline。后来,想到用OGRE、OSG,都因为难度大,开发信心严重不足,时间也难以保证。后来找到了一个开源项目VTP(基于OSG),尝试了一个航次时间,也没有搞出名堂来。每到项目检查时,都写延迟验收申请,自己越来越恐惧。到了今年,项目主管机构不让拖延了。逼上梁山了,遂找到了cesium,但是基于cesium原生开发,难度有点大,比较了cesiumlab、DC和mars3d等开发库,发现mar3d的widget基础项目最符合要求。


点击查看原图

仿照mars3d给出的坐标定位widget,在mars3d的示例帮助下,终于完成了其它widget的开发,包括:空间测量、图标标记、剖面分析、缓冲区分析、淹没分析、方量分析、管线分析、飞行漫游、虚拟仿真。事情总是这样,当一个小困难摆在你面前,如果你正视它,解决它,它前就会变小,最后就湮灭了;如果你回避它,它就会越变越大,成为一座不可逾越的高山。

前5项在中期总结中已经说过了,下面说说后面4项。

(1)方量分析

划定范围,设定基准高程,小于基准高程的体积为填方,大于基准高程的体积为挖方。

点击查看原图

(2)管线分析

选择示范管线,根据管线埋深数据和地形模型,画出管线的埋深剖面;根据不同年份的地形模型,生成地形变化剖面。

点击查看原图

点击查看原图

(3)飞行漫游

比之前的功能增加了飞机模型的显示和隐藏、飞行轨迹显示和隐藏以及速度调整。

点击查看原图

(4)虚拟仿真

虚拟仿真的功能有点像google的动画制作,只是将mar3d的一个示例搬过来,没有实现自动化,这可能是后期改进的部分。右窗口的每个节点是一个widget,即一个场景,然后通过一个类函数将它们串起来,就是动画了。虽然没有自动化,手动也很简单,只需要一点点的简单编程,类似于搭积木,只要做好一个个widget,串联的程序不用动,动画就完成了。

点击查看原图

过段时间,在微信公众号(xiaok海洋测绘网)上会发一段本系统的使用视频,欢迎关注。

æ æ é¢2.png


推荐阅读
  • 本文源自极分享,详细内容请参阅原文。技术债务如同信用卡负债,随着时间推移,修复成本会越来越高,因此程序员必须对此有深刻认识。此外,团队应致力于培养一种持续维护和优化代码的文化,以减少技术债务的累积。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ... [详细]
  • 本文介绍了如何在 Qt 应用程序中实现状态栏、浮动窗口(铆接部件)和中心部件。通过简单的代码示例,详细解释了每个组件的创建和设置方法。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
  • 命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许你参数化不同的请求、队列请求或者记录请求日志。本文将详细介绍命令模式的基本概念、组件及其在实际场景中的应用。 ... [详细]
  • 你的问题在于:1. 代码格式混乱,缺乏必要的缩进,导致可读性极低;2. 使用 `strlen()` 和 `malloc()` 函数时,必须包含相应的头文件;3. `write()` 函数的返回值处理不当,建议检查并处理其返回值以确保程序的健壮性。此外,建议在编写代码时遵循良好的编程规范,增加代码的可维护性和可读性。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
author-avatar
北极光的悲伤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有