下图是qgc任务飞行模式的软件框架
下图是qgc自带的获取高程的类和函数(仅限获取单点):
获取airmap高程数据的教程请参考: https://developers.airmap.com/docs/elevation-api
在plan页面点击Takeoff后,在地图上点击一个点,在点击左边工具栏的Waypoint按钮添加航点
在地图上添加航点后,调用了MissionController里面的insertSimpleMissionItem函数,在MissionController.cc文件里添加getElevation函数,在getgetElevation中,记录原来函数的参数,实例化一个TerrainAirMapQuery,调用它的成员函数请求坐标点的高程数据。
绑定“解析完成的信号”和“源码的插入航点函数”,信号要在TerrainQuery.h定义,并在TerrainQuery.cc里面TerrainAirMapQuery类的_parseCoordinateData函数中触发
接下来就是简单把起飞点的相对高度加上,在VisualMissionItem* MissionController::_insertSimpleMissionItemWorker(QGeoCoordinate coordinate, MAV_CMD command, int visualItemIndex, bool makeCurrentItem)函数里面是相加相对高度个海拔。
调试结果如下,起飞点设置的相对高度为50m,2号点的海拔为24m,则2号点的设置高度为74m
第一次发帖,只是为了记录学习过程!