QGC 任务规划 航测功能 底层逻辑

基于版本:3.1.3

1,点击 左侧 航测按钮

QGC 任务规划 航测功能 底层逻辑


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,类 关系图 如下

QGC 任务规划 航测功能 底层逻辑