osgEarth二次开发项目应用失败记录

在项目临近交付时,将软件部署到甲方的机房环境中,发生软件无法运行的问题。

一、甲方机房的运行环境

软件运行环境为KVM虚拟系统,虚拟系统为Win7 SP1 64位专业版。
启动运行项目软件的操作系统都是虚拟系统,终端机为千元左右的低配NUC主机,通过终端机访问服务器的KVM虚拟系统实现对系统和软件的操作。

二、项目软件描述

项目软件为C/S架构,客户端主要使用了Qt、osgEarth、libEvent、log4cplus的二次开发。

三、项目软件遇到的问题

软件安装到甲方的KVM虚拟系统中,启动软件就会崩溃,无法启动。提示错误信息qt.qpa.gl: Unable to disable rotation.

四、排查问题

经过几天的问题定位与排查,发现甲方KVM虚拟系统的openGL版本为1.0,osgEarth不能支持openGL 1.0版本。

五、尝试过的解决方案

失败解决方案1-Mesa3D:在甲方虚拟系统中安装Mesa 3D实现软件模拟高版本openGL版本,项目软件可以正常启动,但是3D Gis不能显示地图,3D 地球变成一个大黑球。

失败解决方案2-挂载GPU:甲方的虚拟系统可以挂载GPU,向甲方协调使用挂载GPU的虚拟系统,检测发现挂载GPU的虚拟系统openGL版本为4.5。在挂载GPU的虚拟系统启动项目软件,osgEarth提示无法检测到OpenGL版本。提示错误信息为Error: OpenGL version test failed, requires valid graphics context

失败解决方案3-使用NUC主机:向甲方协调,在甲方机房的终端机NUC主机系统中运行软件。NUC主机的显卡为集成显卡HD3000,系统OpenGL版本为1.0,通过查询和尝试,没有合适的HD3000驱动将系统openGL升级为3.3以上版本。

六、办不到的解决方案

解决方案1-在终端机加装独立显卡 不可能的,现场的NUC小主机,长和宽也就15cm左右,高度就几公分。甲方也不同意的。

解决方案2-不使用虚拟系统 不可能的,甲方的其他很多配套工具和软件都运行在云虚拟系统中,软件交付后,甲方就是在云虚拟系统中使用项目软件。

七、最后的解决方法

使用2D Gis替代3D Gis 与甲方协调,甲方同意换用2D Gis。
但是公司并没有2D Gis模块,软件3D Gis开发人员不在甲方现场,在其他城市做项目开发,不能支援甲方现场。距离项目最终交付仅剩一个月。
逼得我没办法了,作为一个对Gis完全不懂的人,用了二十天左右的时间从零开发了一个2D Gis,使用Qt的QGraphicsView实现了对Shp地图文件的读取显示,并且2D Gis接口与3D Gis接口完全相同。实现了画航路、画圆形、画矩形、画多边形、雷达扇形扫描、多圆融合、圆环显示、测距、多图标显示、信息流曲线、地图比例尺、地图缩放、鹰眼图等功能。
幸好项目软件对于2D Gis的功能要求并不多。

八、反思和总结

在项目前期,一定要明确甲方的软件运行环境,确认是否能支持软件运行。在甲方环境中运行一下项目软件Demo,做环境运行验证。
osgEarth的运行,需要独立显卡和高版本OpenGL,而且不能良好运行在虚拟系统中。
这次项目,也让我对仅依赖OpenGL的3D开发充满了不信任。在网络上查找资料时,发现有其他人做VTK等3D开发时,也碰到过GPU的openGL检测失败的情况。
甲方的虚拟系统中,可以运行unity3D开发的3D程序,推测原因为unity3D可依赖于direct3D,但是依赖OpenGL的osgEarth就崩溃了。
下次有3D Gis开发的机会的话,我希望试试虚幻4。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
osgEarth 是一个开源的地理空间工具包,可以与 OpenSceneGraph(OSG)结合使用,用于实现高性能的地理可视化和地理信息系统(GIS)应用程序的开发。它提供了一组功能强大的工具和库,可帮助开发者快速构建出具有交互性和真实感的地理场景。 与传统的GIS开发工具相比,osgEarth 在可视化效果和性能方面有着明显的优势。它利用了OSG强大的三维渲染能力,可以实现高效的地形渲染、大规模数据集的可视化以及实时的地理信息展示。此外,osgEarth还提供了丰富的图层管理功能,支持多种地理数据格式,如矢量数据、栅格数据和影像数据等,可以轻松地加载和显示各类地理数据。 在 VS2010 开发环境下,osgEarth 提供了完整的开发包,方便开发者在 Windows 平台上进行 osgEarth 的开发和调试。VS2010与osgEarth的集成开发环境为开发者提供了友好的开发界面,可以轻松地进行代码编写、调试和发布。 使用osg Earth 组件进行开发还具有一定的灵活性和可扩展性。开发者可以根据自己的需求,选择和定制适合自己的功能模块,或者根据需要自行开发扩展模块。与其他商业GIS开发工具相比,osgEarth 的开发成本较低,同时也有着较高的自由度。 总之,osgEarth 在地理可视化和GIS应用开发方面具有很大的潜力与优势。VS2010开发包为开发者提供了便利的开发环境,使得使用osgEarth进行开发变得更加简单和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值