QGC 任务规划 航测功能 底层逻辑
基于版本:3.1.3
1,点击 左侧 航测按钮
2,MissionEditor.qml中 调用MissionController 插入复杂任务 函数
var sequenceNumber = missionController.insertComplexMissionItem(coordinate, missionController.visualItems.count)
3,MissionController.cc 中 实例化 SurveyMissionItem
int MissionController::insertComplexMissionItem(QGeoCoordinate coordinate, int i,int index)
{
int sequenceNumber = _nextSequenceNumber();
bool isSurvey=true;
if(index==0)
isSurvey=true;
else
isSurvey=false;
qDebug()<<"insertComplexMissionItem"<<isSurvey<<index;
SurveyMissionItem* newItem = new SurveyMissionItem(_activeVehicle, this,isSurvey);
newItem->setSequenceNumber(sequenceNumber);
newItem->setCoordinate(coordinate);
_initVisualItem(newItem);
_visualItems->insert(i, newItem);
_complexItems->append(newItem);
_recalcAll();
return newItem->sequenceNumber();
}
4,MissionController 负责任务的可控制
SurveyMissionItem 具体的测绘任务
5,类 关系图 如下