嵌入osgEarth的QT应用可以提供很多强大的功能,比如拖动部署 和测量标绘,这两者是在态势上广泛应用的交互功能。拖动部署指通过鼠标拖动图标到目标GEO位置,以此来提供设备的可视化部署。测量标绘则是所有地图的基础应用,包括直线距离测试和面积测量等。
效果如下所示:
拖动部署要点:
1 实现Drag-Drop基本的功能。这个是QT的成熟功能,但前提是用QT类QWIDGET适当的封装OSG中OSGVIEWER。
2 鼠标位置映射到地理位置。这个属于OSG提供的基础功能求交,可以通过osgViewer提供computeIntersections接口来实现。
3 目标图标的显示。在GEO位置上显示特定图标,在OSGEARTH中有现成的例子,思路是创建osg::LOD,并添加到osgEarth:MapNode中,并通过Style指定需要的图标。
测绘实现要点:
1 鼠标位置的计算。这个同上,通过OSG提供的osgGA::GUIEventAdapter结合osgViewer即可计算出来。
2 起始位置的绘制。通过1算出起始位置后,直接绘制CircleNode即可,它本身是一个AnnotationNode,指定Style即可绘制。
3 计算起始距离。 距离的计算,直接通过GeoMath::rhumbDistance接口,输入起始位置即可。
需要的基础知识:
1 地理位置信息;
2 QT的框架;
3 osgEarth/OSG中的框架。
QQ:287919932,欢迎交流。