从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海洋测绘网)上会发一段本系统的使用视频,欢迎关注。