diff --git a/Src/data_area/search_data_20251023_102001.json b/Src/data_area/search_data_20251023_102001.json new file mode 100644 index 0000000..ea8b7b6 --- /dev/null +++ b/Src/data_area/search_data_20251023_102001.json @@ -0,0 +1,15 @@ +{ + "coverage": "覆盖范围: 3.4%", + "coveragePathData": "[{\"pathColor\":\"#E53935\",\"circleColor\":\"#1E88E5\",\"radius\":80.00,\"path\":[[113.551903,28.578503],[113.552477,28.578503],[113.553052,28.578503],[113.553626,28.578503],[113.554201,28.578503],[113.554775,28.578503],[113.555350,28.578503],[113.555924,28.578503],[113.556499,28.578503],[113.557073,28.578503],[113.557648,28.578503],[113.558097,28.578503],[113.558097,28.579007],[113.557648,28.579007],[113.557073,28.579007],[113.556499,28.579007],[113.555924,28.579007],[113.555350,28.579007],[113.554775,28.579007],[113.554201,28.579007],[113.553626,28.579007],[113.553052,28.579007],[113.552477,28.579007],[113.551903,28.579007],[113.551903,28.579512],[113.552477,28.579512],[113.553052,28.579512],[113.553626,28.579512],[113.554201,28.579512],[113.554775,28.579512],[113.555350,28.579512],[113.555924,28.579512],[113.556499,28.579512],[113.557073,28.579512],[113.557648,28.579512],[113.558097,28.579512],[113.558097,28.580016],[113.557648,28.580016],[113.557073,28.580016],[113.556499,28.580016],[113.555924,28.580016],[113.555350,28.580016],[113.554775,28.580016],[113.554201,28.580016],[113.553626,28.580016],[113.553052,28.580016],[113.552477,28.580016],[113.551903,28.580016],[113.551903,28.580521],[113.552477,28.580521],[113.553052,28.580521],[113.553626,28.580521],[113.554201,28.580521],[113.554775,28.580521],[113.555350,28.580521],[113.555924,28.580521],[113.556499,28.580521],[113.557073,28.580521],[113.557648,28.580521],[113.558097,28.580521],[113.558097,28.581025],[113.557648,28.581025],[113.557073,28.581025],[113.556499,28.581025],[113.555924,28.581025],[113.555350,28.581025],[113.554775,28.581025],[113.554201,28.581025],[113.553626,28.581025],[113.553052,28.581025],[113.552477,28.581025],[113.551903,28.581025],[113.551903,28.581530],[113.552477,28.581530],[113.553052,28.581530],[113.553626,28.581530],[113.554201,28.581530],[113.554775,28.581530],[113.555350,28.581530],[113.555924,28.581530],[113.556499,28.581530],[113.557073,28.581530],[113.557648,28.581530],[113.558097,28.581530],[113.558097,28.582034],[113.557648,28.582034],[113.557073,28.582034],[113.556499,28.582034],[113.555924,28.582034],[113.555350,28.582034],[113.554775,28.582034],[113.554201,28.582034],[113.553626,28.582034],[113.553052,28.582034],[113.552477,28.582034],[113.551903,28.582034],[113.551903,28.582539],[113.552477,28.582539],[113.553052,28.582539],[113.553626,28.582539],[113.554201,28.582539],[113.554775,28.582539],[113.555350,28.582539],[113.555924,28.582539],[113.556499,28.582539],[113.557073,28.582539],[113.557648,28.582539],[113.558097,28.582539],[113.558097,28.583043],[113.557648,28.583043],[113.557073,28.583043],[113.556499,28.583043],[113.555924,28.583043],[113.555350,28.583043],[113.554775,28.583043],[113.554201,28.583043],[113.553626,28.583043],[113.553052,28.583043],[113.552477,28.583043],[113.551903,28.583043],[113.551903,28.583548],[113.552477,28.583548],[113.553052,28.583548],[113.553626,28.583548],[113.554201,28.583548],[113.554775,28.583548],[113.555350,28.583548],[113.555924,28.583548],[113.556499,28.583548],[113.557073,28.583548],[113.557648,28.583548],[113.558097,28.583548],[113.558097,28.584052],[113.557648,28.584052],[113.557073,28.584052],[113.556499,28.584052],[113.555924,28.584052],[113.555350,28.584052],[113.554775,28.584052],[113.554201,28.584052],[113.553626,28.584052],[113.553052,28.584052],[113.552477,28.584052],[113.551903,28.584052],[113.551903,28.584557],[113.552477,28.584557],[113.553052,28.584557],[113.553626,28.584557],[113.554201,28.584557],[113.554775,28.584557],[113.555350,28.584557],[113.555924,28.584557],[113.556499,28.584557],[113.557073,28.584557],[113.557648,28.584557],[113.558097,28.584557],[113.558097,28.584697],[113.557648,28.584697],[113.557073,28.584697],[113.556499,28.584697],[113.555924,28.584697],[113.555350,28.584697],[113.554775,28.584697],[113.554201,28.584697],[113.553626,28.584697],[113.553052,28.584697],[113.552477,28.584697],[113.551903,28.584697]]}]", + "droneCount": 1, + "searchTime": "预计搜索时间: 10.2min", + "tableData": [ + { + "coverage": "100.0%", + "droneId": "Drone 1", + "path": "覆盖路径 (168个点)", + "time": "10.2min" + } + ], + "timestamp": "2025-10-23 10:20:01" +} diff --git a/Src/data_area/search_data_20251023_102153.json b/Src/data_area/search_data_20251023_102153.json new file mode 100644 index 0000000..2b545d4 --- /dev/null +++ b/Src/data_area/search_data_20251023_102153.json @@ -0,0 +1,27 @@ +{ + "coverage": "覆盖范围: 4.5%", + "coveragePathData": "[{\"pathColor\":\"#E53935\",\"circleColor\":\"#1E88E5\",\"radius\":80.00,\"path\":[[113.618000,28.565700],[113.618718,28.565700],[113.619436,28.565700],[113.620154,28.565700],[113.620872,28.565700],[113.621590,28.565700],[113.622308,28.565700],[113.623026,28.565700],[113.623744,28.565700],[113.624463,28.565700],[113.625181,28.565700],[113.625899,28.565700],[113.626617,28.565700],[113.627000,28.565700],[113.627000,28.566331],[113.626617,28.566331],[113.625899,28.566331],[113.625181,28.566331],[113.624463,28.566331],[113.623744,28.566331],[113.623026,28.566331],[113.622308,28.566331],[113.621590,28.566331],[113.620872,28.566331],[113.620154,28.566331],[113.619436,28.566331],[113.618718,28.566331],[113.618000,28.566331],[113.618000,28.566961],[113.618718,28.566961],[113.619436,28.566961],[113.620154,28.566961],[113.620872,28.566961],[113.621590,28.566961],[113.622308,28.566961],[113.623026,28.566961],[113.623744,28.566961],[113.624463,28.566961],[113.625181,28.566961],[113.625899,28.566961],[113.626617,28.566961],[113.627000,28.566961],[113.620872,28.567592],[113.620154,28.567592],[113.619436,28.567592],[113.618718,28.567592],[113.618000,28.567592]]},{\"pathColor\":\"#1E88E5\",\"circleColor\":\"#8E24AA\",\"radius\":100.00,\"path\":[[113.621590,28.567592],[113.622308,28.567592],[113.623026,28.567592],[113.623744,28.567592],[113.624463,28.567592],[113.625181,28.567592],[113.625899,28.567592],[113.626617,28.567592],[113.627000,28.567592],[113.618000,28.568223],[113.618718,28.568223],[113.619436,28.568223],[113.620154,28.568223],[113.620872,28.568223],[113.620872,28.568853],[113.620154,28.568853],[113.619436,28.568853],[113.618718,28.568853],[113.618000,28.568853],[113.627000,28.568223],[113.626617,28.568223],[113.625899,28.568223],[113.625181,28.568223],[113.624463,28.568223],[113.623744,28.568223],[113.623026,28.568223],[113.622308,28.568223],[113.621590,28.568223],[113.621590,28.568853],[113.622308,28.568853],[113.623026,28.568853],[113.623744,28.568853],[113.624463,28.568853],[113.625181,28.568853],[113.625899,28.568853],[113.626617,28.568853],[113.627000,28.568853],[113.618000,28.569484],[113.618718,28.569484],[113.619436,28.569484],[113.620154,28.569484],[113.620872,28.569484],[113.624463,28.569484],[113.623744,28.569484],[113.623026,28.569484],[113.622308,28.569484],[113.621590,28.569484]]},{\"pathColor\":\"#8E24AA\",\"circleColor\":\"#F06292\",\"radius\":120.00,\"path\":[[113.625181,28.569484],[113.625899,28.569484],[113.626617,28.569484],[113.627000,28.569484],[113.618000,28.570114],[113.618718,28.570114],[113.619436,28.570114],[113.620154,28.570114],[113.620872,28.570114],[113.621590,28.570114],[113.622308,28.570114],[113.623026,28.570114],[113.623744,28.570114],[113.624463,28.570114],[113.624463,28.570745],[113.623744,28.570745],[113.623026,28.570745],[113.622308,28.570745],[113.621590,28.570745],[113.620872,28.570745],[113.620154,28.570745],[113.619436,28.570745],[113.618718,28.570745],[113.618000,28.570745],[113.627000,28.570114],[113.626617,28.570114],[113.625899,28.570114],[113.625181,28.570114],[113.625181,28.570745],[113.625899,28.570745],[113.626617,28.570745],[113.627000,28.570745],[113.618000,28.571000],[113.618718,28.571000],[113.619436,28.571000],[113.620154,28.571000],[113.620872,28.571000],[113.621590,28.571000],[113.622308,28.571000],[113.623026,28.571000],[113.623744,28.571000],[113.624463,28.571000],[113.627000,28.571000],[113.626617,28.571000],[113.625899,28.571000],[113.625181,28.571000]]}]", + "droneCount": 3, + "searchTime": "预计搜索时间: 6.5min", + "tableData": [ + { + "coverage": "21.0%", + "droneId": "Drone 1", + "path": "覆盖路径 (47个点)", + "time": "4.1min" + }, + { + "coverage": "32.8%", + "droneId": "Drone 2", + "path": "覆盖路径 (47个点)", + "time": "6.5min" + }, + { + "coverage": "46.2%", + "droneId": "Drone 3", + "path": "覆盖路径 (46个点)", + "time": "6.3min" + } + ], + "timestamp": "2025-10-23 10:21:53" +} diff --git a/Src/pages/mappage.cpp b/Src/pages/mappage.cpp index 1d1d1c7..336e786 100644 --- a/Src/pages/mappage.cpp +++ b/Src/pages/mappage.cpp @@ -887,8 +887,8 @@ void MapPage::onSearchMapClicked() { } // Implement ThreatAreaDialog methods -ThreatAreaDialog::ThreatAreaDialog(QWidget *parent, MapPage* mapPage) : QDialog(parent), mapPage_(mapPage), drawingPoints_() { - setWindowTitle("设置威胁区域"); +ThreatAreaDialog::ThreatAreaDialog(QWidget *parent, MapPage* mapPage, const QString& title) : QDialog(parent), mapPage_(mapPage), drawingPoints_() { + setWindowTitle(title); setMinimumSize(600, 500); auto* layout = new QVBoxLayout(this); layout->setSpacing(15); @@ -1771,8 +1771,8 @@ void PathPlanningDialog::onMapClick(double lng, double lat) { } } -AreaCoverageDialog::AreaCoverageDialog(QWidget* parent, MapPage* mapPage) : QDialog(parent), mapPage_(mapPage), coveragePathData_("") { - setWindowTitle("区域覆盖路径规划"); +AreaCoverageDialog::AreaCoverageDialog(QWidget* parent, MapPage* mapPage, const QString& title) : QDialog(parent), mapPage_(mapPage), coveragePathData_(""), dialogTitle_(title) { + setWindowTitle(title); setMinimumSize(700, 600); auto* mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(20, 20, 20, 20); @@ -1801,11 +1801,16 @@ AreaCoverageDialog::AreaCoverageDialog(QWidget* parent, MapPage* mapPage) : QDia onDroneCountChanged(droneCountSpin_->value()); // 威胁区域选择 - auto* threatBox = new QGroupBox("选择威胁区域(用于覆盖规划)"); + QString threatBoxTitle = dialogTitle_.contains("任务决策") ? "选择搜索区域(用于覆盖规划)" : "选择威胁区域(用于覆盖规划)"; + auto* threatBox = new QGroupBox(threatBoxTitle); auto* threatLayout = new QVBoxLayout(threatBox); threatSelectTable_ = new QTableWidget(); threatSelectTable_->setColumnCount(4); - threatSelectTable_->setHorizontalHeaderLabels({"选择", "类型", "形状", "详情"}); + QStringList headers = {"选择", "类型", "形状", "详情"}; + if (dialogTitle_.contains("任务决策")) { + headers[1] = "区域类型"; + } + threatSelectTable_->setHorizontalHeaderLabels(headers); threatSelectTable_->setSelectionMode(QAbstractItemView::NoSelection); threatSelectTable_->setEditTriggers(QAbstractItemView::NoEditTriggers); threatLayout->addWidget(threatSelectTable_); @@ -1940,7 +1945,8 @@ void AreaCoverageDialog::planCoveragePath() { } } if (selectedIdx.isEmpty()) { - QMessageBox::warning(this, "提示", "请至少选择一个威胁区域"); + QString warningMsg = dialogTitle_.contains("任务决策") ? "请至少选择一个搜索区域" : "请至少选择一个威胁区域"; + QMessageBox::warning(this, "提示", warningMsg); return; } QList chosen; @@ -2158,7 +2164,8 @@ void AreaCoverageDialog::planCoveragePath() { statsLines.append("=== 总体统计 ===
"); statsLines.append(QString("总飞行距离: %1 米
").arg(int(totalDistance))); statsLines.append(QString("总覆盖面积: %1 平方米
").arg(int(totalCoverageArea))); - statsLines.append(QString("威胁区域面积: %1 平方米
").arg(int(threatAreaSize))); + QString areaLabel = dialogTitle_.contains("任务决策") ? "搜索区域面积" : "威胁区域面积"; + statsLines.append(QString("%1: %2 平方米
").arg(areaLabel).arg(int(threatAreaSize))); statsLines.append(QString("覆盖率: %1%
").arg(QString::number(coverageRate, 'f', 1))); statsLines.append(QString("最长飞行时间: %1 分钟
").arg(QString::number(maxFlightTime, 'f', 1))); @@ -2189,7 +2196,10 @@ void AreaCoverageDialog::planCoveragePath() { coveragePathData_ = multiJson; // 完成提示 - QMessageBox::information(this, "成功", QString("威胁区域覆盖路径已生成(%1 架无人机,覆盖率 %2%)").arg(droneCount).arg(QString::number(coverageRate, 'f', 1))); + QString successMsg = dialogTitle_.contains("任务决策") ? + QString("搜索区域覆盖路径已生成(%1 架无人机,覆盖率 %2%)").arg(droneCount).arg(QString::number(coverageRate, 'f', 1)) : + QString("威胁区域覆盖路径已生成(%1 架无人机,覆盖率 %2%)").arg(droneCount).arg(QString::number(coverageRate, 'f', 1)); + QMessageBox::information(this, "成功", successMsg); return; } } @@ -2295,7 +2305,8 @@ void AreaCoverageDialog::onSelectNoneThreats() { void AreaCoverageDialog::onRefreshThreats() { populateThreatList(); - QMessageBox::information(this, "成功", "威胁区域列表已刷新"); + QString refreshMsg = dialogTitle_.contains("任务决策") ? "搜索区域列表已刷新" : "威胁区域列表已刷新"; + QMessageBox::information(this, "成功", refreshMsg); } void AreaCoverageDialog::onPathDroneChanged(int index) { @@ -2601,6 +2612,12 @@ void MapPage::onMapReadyFromJS() { emit mapReady(); } +void MapPage::setThreatButtonText(const QString& text) { + if (setThreatBtn_) { + setThreatBtn_->setText(text); + } +} + void MapPage::loadSavedPath() { QFile file("task_path.json"); if (file.open(QIODevice::ReadOnly)) { diff --git a/Src/pages/mappage.h b/Src/pages/mappage.h index 0dd8a7e..4324e76 100644 --- a/Src/pages/mappage.h +++ b/Src/pages/mappage.h @@ -57,7 +57,7 @@ class AreaSearchDialog; class ThreatAreaDialog : public QDialog { Q_OBJECT public: - ThreatAreaDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr); + ThreatAreaDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr, const QString& title = "设置威胁区域"); private slots: void addArea(); void updateThreatStats(); @@ -128,7 +128,7 @@ private: class AreaCoverageDialog : public QDialog { Q_OBJECT public: - AreaCoverageDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr); + AreaCoverageDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr, const QString& title = "区域覆盖规划"); QString getCoveragePathData() const { return coveragePathData_; } private slots: void planCoveragePath(); @@ -144,6 +144,7 @@ private slots: void onResetAnimation(); private: void populateThreatList(); + QString dialogTitle_; QSpinBox* droneCountSpin_; QTableWidget* droneParamsTable_; QTableWidget* threatSelectTable_; @@ -206,6 +207,9 @@ public: QComboBox* getHeightCombo() const { return heightCombo_; } QPushButton* getDownloadMapBtn() const { return downloadMapBtn_; } + + // 设置威胁区域按钮文本的方法 + void setThreatButtonText(const QString& text); signals: void heightChanged(const QString& height); diff --git a/Src/pages/taskdecisionpage.cpp b/Src/pages/taskdecisionpage.cpp index 61a9d9d..5e44b93 100644 --- a/Src/pages/taskdecisionpage.cpp +++ b/Src/pages/taskdecisionpage.cpp @@ -3,6 +3,7 @@ #include "mappage.h" // For PathPlanningDialog and MapPage #include // Added for file operations #include // Added for saving paths +#include // Added for directory operations #include #include #include @@ -15,6 +16,12 @@ #include #include #include +#include +#include +#include +#include +#include +#include TaskDecisionPage::TaskDecisionPage(QWidget* parent) : QWidget(parent) @@ -185,26 +192,26 @@ QWidget* TaskDecisionPage::createStep3Widget() { layout->addWidget(new QLabel("步骤3: 规划区域搜索策略")); - areaSize_ = new QLineEdit(); - areaSize_->setPlaceholderText("区域大小/形状 (e.g., 圆形,半径5km)"); - layout->addWidget(areaSize_); - droneCount_ = new QSpinBox(); droneCount_->setRange(1, 10); layout->addWidget(droneCount_); - auto* recBtn = new QPushButton("推荐无人机数量"); - connect(recBtn, &QPushButton::clicked, this, &TaskDecisionPage::onRecommendDrones); - layout->addWidget(recBtn); - - auto* replanBtn = new QPushButton("重新规划"); - connect(replanBtn, &QPushButton::clicked, this, &TaskDecisionPage::onReplanSearch); - layout->addWidget(replanBtn); + // 新增区域覆盖规划按钮 + auto* areaCoverageBtn = new QPushButton("区域覆盖规划"); + areaCoverageBtn->setProperty("primary", true); + connect(areaCoverageBtn, &QPushButton::clicked, this, &TaskDecisionPage::onAreaCoveragePlanning); + layout->addWidget(areaCoverageBtn); searchTable_ = new QTableWidget(0, 4); - searchTable_->setHorizontalHeaderLabels({"无人机ID", "搜索路径", "时间", "范围占比"}); + searchTable_->setHorizontalHeaderLabels({"无人机ID", "搜索路径", "时间", "覆盖率"}); layout->addWidget(searchTable_); + // 新增保存数据按钮 + auto* saveDataBtn = new QPushButton("保存数据"); + saveDataBtn->setProperty("secondary", true); + connect(saveDataBtn, &QPushButton::clicked, this, &TaskDecisionPage::onSaveSearchData); + layout->addWidget(saveDataBtn); + searchTime_ = new QLabel("预计搜索时间: N/A"); coverage_ = new QLabel("覆盖范围: N/A"); layout->addWidget(searchTime_); @@ -342,25 +349,183 @@ void TaskDecisionPage::onGeneratePath() { }); } -void TaskDecisionPage::onRecommendDrones() { - // 模拟推荐(基于区域大小) - droneCount_->setValue(3); // 示例 - QMessageBox::information(this, "推荐", "推荐使用3架无人机"); +void TaskDecisionPage::onAreaCoveragePlanning() { + // 创建独立的地图画布窗口 + MapPage* coverageMap = new MapPage(this); + coverageMap->setWindowTitle("区域覆盖规划 - 任务决策"); + coverageMap->resize(1200, 800); + + // 设置威胁区域按钮文本为"设置搜索区域" + coverageMap->setThreatButtonText("设置搜索区域"); + + coverageMap->show(); + + // 等待地图加载完成后打开区域覆盖规划对话框 + connect(coverageMap->getMapView()->page(), &QWebEnginePage::loadFinished, [this, coverageMap](bool ok) { + if (ok) { + // 创建区域覆盖规划对话框 + AreaCoverageDialog* coverageDialog = new AreaCoverageDialog(this, coverageMap, "区域覆盖规划 - 任务决策"); + coverageDialog->show(); + + // 连接对话框关闭信号,清理资源 + connect(coverageDialog, &QDialog::finished, [this, coverageMap, coverageDialog](int result) { + if (result == QDialog::Accepted) { + // 获取覆盖路径数据 + QString coveragePathData = coverageDialog->getCoveragePathData(); + if (!coveragePathData.isEmpty()) { + // 更新搜索数据 + searchData_ = coveragePathData; + + // 解析覆盖路径数据并更新搜索表格 + updateSearchTableFromCoverageData(coveragePathData); + + QMessageBox::information(coverageDialog, "成功", "区域覆盖规划已完成!"); + } + } + // 关闭地图画布 + coverageMap->close(); + coverageMap->deleteLater(); + coverageDialog->deleteLater(); + }); + } + }); } -void TaskDecisionPage::onReplanSearch() { - // 模拟规划 - searchTable_->setRowCount(droneCount_->value()); - for (int i = 0; i < droneCount_->value(); ++i) { +void TaskDecisionPage::onSaveSearchData() { + // 检查是否有搜索数据 + if (searchData_.isEmpty()) { + QMessageBox::warning(this, "警告", "没有可保存的搜索数据!请先进行区域覆盖规划。"); + return; + } + + // 创建data_area目录(相对于项目根目录) + QString projectRoot = QDir::currentPath(); + QDir dataDir(projectRoot + "/data_area"); + if (!dataDir.exists()) { + if (!dataDir.mkpath(".")) { + QMessageBox::critical(this, "错误", "无法创建data_area目录!"); + return; + } + } + + // 生成文件名(包含时间戳) + QDateTime currentTime = QDateTime::currentDateTime(); + QString fileName = QString("search_data_%1.json").arg(currentTime.toString("yyyyMMdd_hhmmss")); + QString filePath = dataDir.absoluteFilePath(fileName); + + // 准备保存的数据 + QJsonObject searchDataObj; + searchDataObj["timestamp"] = currentTime.toString("yyyy-MM-dd hh:mm:ss"); + searchDataObj["droneCount"] = droneCount_->value(); + searchDataObj["searchTime"] = searchTime_->text(); + searchDataObj["coverage"] = coverage_->text(); + searchDataObj["coveragePathData"] = searchData_; + + // 添加表格数据 + QJsonArray tableData; + for (int i = 0; i < searchTable_->rowCount(); ++i) { + QJsonObject rowData; + rowData["droneId"] = searchTable_->item(i, 0) ? searchTable_->item(i, 0)->text() : ""; + rowData["path"] = searchTable_->item(i, 1) ? searchTable_->item(i, 1)->text() : ""; + rowData["time"] = searchTable_->item(i, 2) ? searchTable_->item(i, 2)->text() : ""; + rowData["coverage"] = searchTable_->item(i, 3) ? searchTable_->item(i, 3)->text() : ""; + tableData.append(rowData); + } + searchDataObj["tableData"] = tableData; + + // 保存到文件 + QJsonDocument doc(searchDataObj); + QFile file(filePath); + if (file.open(QIODevice::WriteOnly)) { + file.write(doc.toJson()); + file.close(); + QMessageBox::information(this, "成功", QString("搜索数据已保存到:\n%1").arg(filePath)); + } else { + QMessageBox::critical(this, "错误", "无法保存文件!"); + } +} + +void TaskDecisionPage::updateSearchTableFromCoverageData(const QString& coveragePathData) { + // 解析JSON格式的覆盖路径数据 + QJsonParseError error; + QJsonDocument doc = QJsonDocument::fromJson(coveragePathData.toUtf8(), &error); + + if (error.error != QJsonParseError::NoError) { + qDebug() << "JSON解析错误:" << error.errorString(); + return; + } + + QJsonArray droneArray = doc.array(); + int droneCount = droneArray.size(); + + // 更新无人机数量 + droneCount_->setValue(droneCount); + + // 更新搜索表格 + searchTable_->setRowCount(droneCount); + + double totalDistance = 0.0; + double totalCoverageArea = 0.0; + double maxFlightTime = 0.0; + QList droneCoverageAreas; // 存储每台无人机的覆盖面积 + + for (int i = 0; i < droneCount; ++i) { + QJsonObject droneObj = droneArray[i].toObject(); + QJsonArray pathArray = droneObj["path"].toArray(); + + // 无人机ID searchTable_->setItem(i, 0, new QTableWidgetItem(QString("Drone %1").arg(i+1))); - searchTable_->setItem(i, 1, new QTableWidgetItem("路径描述")); - searchTable_->setItem(i, 2, new QTableWidgetItem("5min")); - searchTable_->setItem(i, 3, new QTableWidgetItem("30%")); + + // 搜索路径描述 + QString pathDesc = QString("覆盖路径 (%1个点)").arg(pathArray.size()); + searchTable_->setItem(i, 1, new QTableWidgetItem(pathDesc)); + + // 计算路径长度和飞行时间 + double pathDistance = 0.0; + for (int j = 1; j < pathArray.size(); ++j) { + QJsonArray point1 = pathArray[j-1].toArray(); + QJsonArray point2 = pathArray[j].toArray(); + + double lng1 = point1[0].toDouble(); + double lat1 = point1[1].toDouble(); + double lng2 = point2[0].toDouble(); + double lat2 = point2[1].toDouble(); + + // 使用Haversine公式计算距离 + double dLat = (lat2 - lat1) * M_PI / 180.0; + double dLng = (lng2 - lng1) * M_PI / 180.0; + double a = sin(dLat/2) * sin(dLat/2) + cos(lat1 * M_PI / 180.0) * cos(lat2 * M_PI / 180.0) * sin(dLng/2) * sin(dLng/2); + double c = 2 * atan2(sqrt(a), sqrt(1-a)); + pathDistance += 6371000.0 * c; // 地球半径米 + } + + totalDistance += pathDistance; + + // 假设飞行速度为15m/s + double flightTime = pathDistance / 15.0 / 60.0; // 转换为分钟 + if (flightTime > maxFlightTime) maxFlightTime = flightTime; + + searchTable_->setItem(i, 2, new QTableWidgetItem(QString("%1min").arg(QString::number(flightTime, 'f', 1)))); + + // 计算每台无人机的覆盖面积 + double radius = droneObj["radius"].toDouble(); + double droneCoverageArea = pathArray.size() * M_PI * radius * radius; + totalCoverageArea += droneCoverageArea; + + // 存储每台无人机的覆盖面积,用于后续计算相对覆盖率 + droneCoverageAreas.append(droneCoverageArea); } - searchTime_->setText("预计搜索时间: 15min"); - coverage_->setText("覆盖范围: 90%"); - searchData_ = "搜索策略生成"; - QMessageBox::information(this, "规划", "搜索策略已重新规划!"); + + // 重新计算每台无人机的相对覆盖率,使总和为100% + for (int i = 0; i < droneCount; ++i) { + double relativeCoveragePercent = (droneCoverageAreas[i] / totalCoverageArea) * 100.0; + searchTable_->setItem(i, 3, new QTableWidgetItem(QString("%1%").arg(QString::number(relativeCoveragePercent, 'f', 1)))); + } + + // 计算总覆盖率并更新统计信息 + double totalCoveragePercent = (totalCoverageArea / (100.0 * 1000000.0)) * 100.0; // 100平方公里转换为平方米 + searchTime_->setText(QString("预计搜索时间: %1min").arg(QString::number(maxFlightTime, 'f', 1))); + coverage_->setText(QString("覆盖范围: %1%").arg(QString::number(totalCoveragePercent, 'f', 1))); } void TaskDecisionPage::onAddTargetType() { diff --git a/Src/pages/taskdecisionpage.h b/Src/pages/taskdecisionpage.h index 2885cc7..7c0f103 100644 --- a/Src/pages/taskdecisionpage.h +++ b/Src/pages/taskdecisionpage.h @@ -34,8 +34,8 @@ private slots: void onStepChanged(int step); void onTargetClearChanged(bool clear); void onGeneratePath(); - void onRecommendDrones(); - void onReplanSearch(); + void onAreaCoveragePlanning(); + void onSaveSearchData(); void onAddTargetType(); void onGenerateTask(); void onNextStep(); @@ -73,6 +73,7 @@ private: void updateTargetInTable(TargetData* target); void showTargetEditDialog(TargetData* target = nullptr); void showBatchUpdateDialog(); + void updateSearchTableFromCoverageData(const QString& coveragePathData); // 成员变量 QStackedWidget* contentStack_; @@ -94,7 +95,6 @@ private: QTextEdit* pathResult_; // 步骤3 - QLineEdit* areaSize_; QSpinBox* droneCount_; QTableWidget* searchTable_; QLabel* searchTime_; diff --git a/Src/saved_path_20251023_091952.json b/Src/saved_path_20251023_091952.json new file mode 100644 index 0000000..d73a7c1 --- /dev/null +++ b/Src/saved_path_20251023_091952.json @@ -0,0 +1 @@ +[[113.477418, 28.502403],[113.375107, 28.461060]] \ No newline at end of file diff --git a/Src/saved_path_20251023_092022.json b/Src/saved_path_20251023_092022.json new file mode 100644 index 0000000..d73a7c1 --- /dev/null +++ b/Src/saved_path_20251023_092022.json @@ -0,0 +1 @@ +[[113.477418, 28.502403],[113.375107, 28.461060]] \ No newline at end of file diff --git a/Src/saved_path_20251023_092036.json b/Src/saved_path_20251023_092036.json new file mode 100644 index 0000000..d73a7c1 --- /dev/null +++ b/Src/saved_path_20251023_092036.json @@ -0,0 +1 @@ +[[113.477418, 28.502403],[113.375107, 28.461060]] \ No newline at end of file diff --git a/Src/saved_path_20251023_092214.json b/Src/saved_path_20251023_092214.json new file mode 100644 index 0000000..3513285 --- /dev/null +++ b/Src/saved_path_20251023_092214.json @@ -0,0 +1 @@ +[[113.324982, 28.489797],[113.331414, 28.471167],[113.341705, 28.460921],[113.350710, 28.456263],[113.361001, 28.453469],[113.373864, 28.453469],[113.388015, 28.458126],[113.426606, 28.474893]] \ No newline at end of file diff --git a/build/Drone_project b/build/Drone_project index bf5c067..cb37aca 100755 Binary files a/build/Drone_project and b/build/Drone_project differ diff --git a/build/Makefile b/build/Makefile index 206e6ed..1e6a682 100644 --- a/build/Makefile +++ b/build/Makefile @@ -37,7 +37,7 @@ MOVE = mv -f TAR = tar -cf COMPRESS = gzip -9f DISTNAME = Drone_project1.0.0 -DISTDIR = /home/su/Drone_project/build/.tmp/Drone_project1.0.0 +DISTDIR = /home/chenxiaofu/DRONE/Drone_project/build/.tmp/Drone_project1.0.0 LINK = g++ LFLAGS = -Wl,-O1 -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5WebEngineWidgets.so /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so /usr/lib/x86_64-linux-gnu/libQt5Quick.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5QmlModels.so /usr/lib/x86_64-linux-gnu/libQt5WebChannel.so /usr/lib/x86_64-linux-gnu/libQt5Qml.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Positioning.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread @@ -146,6 +146,9 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_location.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ @@ -163,6 +166,7 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_serialport.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ @@ -174,6 +178,8 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webkit.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webkitwidgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ @@ -184,6 +190,7 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ @@ -279,6 +286,9 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_location.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ @@ -296,6 +306,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_serialport.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ @@ -307,6 +318,8 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webkit.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webkitwidgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ @@ -317,6 +330,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ @@ -370,6 +384,9 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_location.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: @@ -387,6 +404,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_serialport.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: @@ -398,6 +416,8 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webkit.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webkitwidgets.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: @@ -408,6 +428,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: @@ -498,72 +519,72 @@ moc_mainwindow.cpp: ../Src/ui/mainwindow.h \ ../Src/pages/taskdata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/ui/mainwindow.h -o moc_mainwindow.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/ui/mainwindow.h -o moc_mainwindow.cpp moc_dronedata.cpp: ../Src/models/dronedata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/dronedata.h -o moc_dronedata.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/dronedata.h -o moc_dronedata.cpp moc_detectiondata.cpp: ../Src/models/detectiondata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/detectiondata.h -o moc_detectiondata.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/detectiondata.h -o moc_detectiondata.cpp moc_targetdata.cpp: ../Src/models/targetdata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/targetdata.h -o moc_targetdata.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/targetdata.h -o moc_targetdata.cpp moc_videopage.cpp: ../Src/pages/videopage.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/videopage.h -o moc_videopage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/videopage.h -o moc_videopage.cpp moc_mappage.cpp: ../Src/pages/mappage.h \ ../Src/pages/mapbridge.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/mappage.h -o moc_mappage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/mappage.h -o moc_mappage.cpp moc_mapbridge.cpp: ../Src/pages/mapbridge.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/mapbridge.h -o moc_mapbridge.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/mapbridge.h -o moc_mapbridge.cpp moc_datapage.cpp: ../Src/pages/datapage.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/datapage.h -o moc_datapage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/datapage.h -o moc_datapage.cpp moc_taskdata.cpp: ../Src/pages/taskdata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdata.h -o moc_taskdata.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdata.h -o moc_taskdata.cpp moc_visionmodelpage.cpp: ../Src/pages/visionmodelpage.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/visionmodelpage.h -o moc_visionmodelpage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/visionmodelpage.h -o moc_visionmodelpage.cpp moc_taskdecisionpage.cpp: ../Src/pages/taskdecisionpage.h \ ../Src/models/targetdata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdecisionpage.h -o moc_taskdecisionpage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdecisionpage.h -o moc_taskdecisionpage.cpp moc_dronemanagementpage.cpp: ../Src/pages/dronemanagementpage.h \ ../Src/models/dronedata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/dronemanagementpage.h -o moc_dronemanagementpage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/dronemanagementpage.h -o moc_dronemanagementpage.cpp moc_taskdetailspage.cpp: ../Src/pages/taskdetailspage.h \ ../Src/pages/taskdata.h \ ../Src/models/dronedata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/su/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/su/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdetailspage.h -o moc_taskdetailspage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/chenxiaofu/DRONE/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/chenxiaofu/DRONE/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdetailspage.h -o moc_taskdetailspage.cpp compiler_moc_objc_header_make_all: compiler_moc_objc_header_clean: diff --git a/build/mainwindow.o b/build/mainwindow.o index 2076f73..c6496bc 100644 Binary files a/build/mainwindow.o and b/build/mainwindow.o differ diff --git a/build/mappage.o b/build/mappage.o index c454c5b..b3a9216 100644 Binary files a/build/mappage.o and b/build/mappage.o differ diff --git a/build/moc_mappage.o b/build/moc_mappage.o index 49bc00d..24a5b07 100644 Binary files a/build/moc_mappage.o and b/build/moc_mappage.o differ diff --git a/build/moc_targetdata.cpp b/build/moc_targetdata.cpp new file mode 100644 index 0000000..0f24afd --- /dev/null +++ b/build/moc_targetdata.cpp @@ -0,0 +1,403 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'targetdata.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.3) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../Src/models/targetdata.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'targetdata.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_TargetData_t { + QByteArrayData data[12]; + char stringdata0[141]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_TargetData_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_TargetData_t qt_meta_stringdata_TargetData = { + { +QT_MOC_LITERAL(0, 0, 10), // "TargetData" +QT_MOC_LITERAL(1, 11, 13), // "statusChanged" +QT_MOC_LITERAL(2, 25, 0), // "" +QT_MOC_LITERAL(3, 26, 12), // "TargetStatus" +QT_MOC_LITERAL(4, 39, 6), // "status" +QT_MOC_LITERAL(5, 46, 15), // "priorityChanged" +QT_MOC_LITERAL(6, 62, 8), // "priority" +QT_MOC_LITERAL(7, 71, 19), // "strikeMethodChanged" +QT_MOC_LITERAL(8, 91, 12), // "StrikeMethod" +QT_MOC_LITERAL(9, 104, 6), // "method" +QT_MOC_LITERAL(10, 111, 13), // "targetEngaged" +QT_MOC_LITERAL(11, 125, 15) // "targetDestroyed" + + }, + "TargetData\0statusChanged\0\0TargetStatus\0" + "status\0priorityChanged\0priority\0" + "strikeMethodChanged\0StrikeMethod\0" + "method\0targetEngaged\0targetDestroyed" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_TargetData[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 39, 2, 0x06 /* Public */, + 5, 1, 42, 2, 0x06 /* Public */, + 7, 1, 45, 2, 0x06 /* Public */, + 10, 0, 48, 2, 0x06 /* Public */, + 11, 0, 49, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, 0x80000000 | 3, 4, + QMetaType::Void, QMetaType::Int, 6, + QMetaType::Void, 0x80000000 | 8, 9, + QMetaType::Void, + QMetaType::Void, + + 0 // eod +}; + +void TargetData::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->statusChanged((*reinterpret_cast< TargetStatus(*)>(_a[1]))); break; + case 1: _t->priorityChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 2: _t->strikeMethodChanged((*reinterpret_cast< StrikeMethod(*)>(_a[1]))); break; + case 3: _t->targetEngaged(); break; + case 4: _t->targetDestroyed(); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (TargetData::*)(TargetStatus ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetData::statusChanged)) { + *result = 0; + return; + } + } + { + using _t = void (TargetData::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetData::priorityChanged)) { + *result = 1; + return; + } + } + { + using _t = void (TargetData::*)(StrikeMethod ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetData::strikeMethodChanged)) { + *result = 2; + return; + } + } + { + using _t = void (TargetData::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetData::targetEngaged)) { + *result = 3; + return; + } + } + { + using _t = void (TargetData::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetData::targetDestroyed)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject TargetData::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_TargetData.data, + qt_meta_data_TargetData, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *TargetData::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *TargetData::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_TargetData.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int TargetData::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void TargetData::statusChanged(TargetStatus _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void TargetData::priorityChanged(int _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void TargetData::strikeMethodChanged(StrikeMethod _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void TargetData::targetEngaged() +{ + QMetaObject::activate(this, &staticMetaObject, 3, nullptr); +} + +// SIGNAL 4 +void TargetData::targetDestroyed() +{ + QMetaObject::activate(this, &staticMetaObject, 4, nullptr); +} +struct qt_meta_stringdata_TargetManager_t { + QByteArrayData data[13]; + char stringdata0[169]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_TargetManager_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_TargetManager_t qt_meta_stringdata_TargetManager = { + { +QT_MOC_LITERAL(0, 0, 13), // "TargetManager" +QT_MOC_LITERAL(1, 14, 13), // "targetCreated" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 8), // "targetId" +QT_MOC_LITERAL(4, 38, 13), // "targetRemoved" +QT_MOC_LITERAL(5, 52, 19), // "targetStatusChanged" +QT_MOC_LITERAL(6, 72, 12), // "TargetStatus" +QT_MOC_LITERAL(7, 85, 6), // "status" +QT_MOC_LITERAL(8, 92, 21), // "targetPriorityChanged" +QT_MOC_LITERAL(9, 114, 8), // "priority" +QT_MOC_LITERAL(10, 123, 25), // "targetStrikeMethodChanged" +QT_MOC_LITERAL(11, 149, 12), // "StrikeMethod" +QT_MOC_LITERAL(12, 162, 6) // "method" + + }, + "TargetManager\0targetCreated\0\0targetId\0" + "targetRemoved\0targetStatusChanged\0" + "TargetStatus\0status\0targetPriorityChanged\0" + "priority\0targetStrikeMethodChanged\0" + "StrikeMethod\0method" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_TargetManager[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 39, 2, 0x06 /* Public */, + 4, 1, 42, 2, 0x06 /* Public */, + 5, 2, 45, 2, 0x06 /* Public */, + 8, 2, 50, 2, 0x06 /* Public */, + 10, 2, 55, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 0x80000000 | 6, 3, 7, + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 9, + QMetaType::Void, QMetaType::QString, 0x80000000 | 11, 3, 12, + + 0 // eod +}; + +void TargetManager::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->targetCreated((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 1: _t->targetRemoved((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->targetStatusChanged((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< TargetStatus(*)>(_a[2]))); break; + case 3: _t->targetPriorityChanged((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 4: _t->targetStrikeMethodChanged((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< StrikeMethod(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (TargetManager::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetManager::targetCreated)) { + *result = 0; + return; + } + } + { + using _t = void (TargetManager::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetManager::targetRemoved)) { + *result = 1; + return; + } + } + { + using _t = void (TargetManager::*)(const QString & , TargetStatus ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetManager::targetStatusChanged)) { + *result = 2; + return; + } + } + { + using _t = void (TargetManager::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetManager::targetPriorityChanged)) { + *result = 3; + return; + } + } + { + using _t = void (TargetManager::*)(const QString & , StrikeMethod ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TargetManager::targetStrikeMethodChanged)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject TargetManager::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_TargetManager.data, + qt_meta_data_TargetManager, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *TargetManager::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *TargetManager::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_TargetManager.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int TargetManager::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void TargetManager::targetCreated(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void TargetManager::targetRemoved(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void TargetManager::targetStatusChanged(const QString & _t1, TargetStatus _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void TargetManager::targetPriorityChanged(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void TargetManager::targetStrikeMethodChanged(const QString & _t1, StrikeMethod _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/build/moc_targetdata.o b/build/moc_targetdata.o new file mode 100644 index 0000000..70b921d Binary files /dev/null and b/build/moc_targetdata.o differ diff --git a/build/moc_taskdecisionpage.cpp b/build/moc_taskdecisionpage.cpp index 89bc4c2..7772515 100644 --- a/build/moc_taskdecisionpage.cpp +++ b/build/moc_taskdecisionpage.cpp @@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED struct qt_meta_stringdata_TaskDecisionPage_t { - QByteArrayData data[13]; - char stringdata0[165]; + QByteArrayData data[25]; + char stringdata0[408]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -39,19 +39,38 @@ QT_MOC_LITERAL(3, 32, 4), // "step" QT_MOC_LITERAL(4, 37, 20), // "onTargetClearChanged" QT_MOC_LITERAL(5, 58, 5), // "clear" QT_MOC_LITERAL(6, 64, 14), // "onGeneratePath" -QT_MOC_LITERAL(7, 79, 17), // "onRecommendDrones" -QT_MOC_LITERAL(8, 97, 14), // "onReplanSearch" -QT_MOC_LITERAL(9, 112, 15), // "onAddTargetType" -QT_MOC_LITERAL(10, 128, 14), // "onGenerateTask" -QT_MOC_LITERAL(11, 143, 10), // "onNextStep" -QT_MOC_LITERAL(12, 154, 10) // "onPrevStep" +QT_MOC_LITERAL(7, 79, 22), // "onAreaCoveragePlanning" +QT_MOC_LITERAL(8, 102, 16), // "onSaveSearchData" +QT_MOC_LITERAL(9, 119, 15), // "onAddTargetType" +QT_MOC_LITERAL(10, 135, 14), // "onGenerateTask" +QT_MOC_LITERAL(11, 150, 10), // "onNextStep" +QT_MOC_LITERAL(12, 161, 10), // "onPrevStep" +QT_MOC_LITERAL(13, 172, 11), // "onAddTarget" +QT_MOC_LITERAL(14, 184, 14), // "onRemoveTarget" +QT_MOC_LITERAL(15, 199, 12), // "onEditTarget" +QT_MOC_LITERAL(16, 212, 24), // "onTargetTableContextMenu" +QT_MOC_LITERAL(17, 237, 3), // "pos" +QT_MOC_LITERAL(18, 241, 24), // "onTargetSelectionChanged" +QT_MOC_LITERAL(19, 266, 23), // "onTargetPriorityChanged" +QT_MOC_LITERAL(20, 290, 27), // "onTargetStrikeMethodChanged" +QT_MOC_LITERAL(21, 318, 23), // "onSortTargetsByPriority" +QT_MOC_LITERAL(22, 342, 21), // "onBatchUpdatePriority" +QT_MOC_LITERAL(23, 364, 25), // "onBatchUpdateStrikeMethod" +QT_MOC_LITERAL(24, 390, 17) // "onClearAllTargets" }, "TaskDecisionPage\0onStepChanged\0\0step\0" "onTargetClearChanged\0clear\0onGeneratePath\0" - "onRecommendDrones\0onReplanSearch\0" + "onAreaCoveragePlanning\0onSaveSearchData\0" "onAddTargetType\0onGenerateTask\0" - "onNextStep\0onPrevStep" + "onNextStep\0onPrevStep\0onAddTarget\0" + "onRemoveTarget\0onEditTarget\0" + "onTargetTableContextMenu\0pos\0" + "onTargetSelectionChanged\0" + "onTargetPriorityChanged\0" + "onTargetStrikeMethodChanged\0" + "onSortTargetsByPriority\0onBatchUpdatePriority\0" + "onBatchUpdateStrikeMethod\0onClearAllTargets" }; #undef QT_MOC_LITERAL @@ -61,7 +80,7 @@ static const uint qt_meta_data_TaskDecisionPage[] = { 8, // revision 0, // classname 0, 0, // classinfo - 9, 14, // methods + 20, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors @@ -69,15 +88,26 @@ static const uint qt_meta_data_TaskDecisionPage[] = { 0, // signalCount // slots: name, argc, parameters, tag, flags - 1, 1, 59, 2, 0x08 /* Private */, - 4, 1, 62, 2, 0x08 /* Private */, - 6, 0, 65, 2, 0x08 /* Private */, - 7, 0, 66, 2, 0x08 /* Private */, - 8, 0, 67, 2, 0x08 /* Private */, - 9, 0, 68, 2, 0x08 /* Private */, - 10, 0, 69, 2, 0x08 /* Private */, - 11, 0, 70, 2, 0x08 /* Private */, - 12, 0, 71, 2, 0x08 /* Private */, + 1, 1, 114, 2, 0x08 /* Private */, + 4, 1, 117, 2, 0x08 /* Private */, + 6, 0, 120, 2, 0x08 /* Private */, + 7, 0, 121, 2, 0x08 /* Private */, + 8, 0, 122, 2, 0x08 /* Private */, + 9, 0, 123, 2, 0x08 /* Private */, + 10, 0, 124, 2, 0x08 /* Private */, + 11, 0, 125, 2, 0x08 /* Private */, + 12, 0, 126, 2, 0x08 /* Private */, + 13, 0, 127, 2, 0x08 /* Private */, + 14, 0, 128, 2, 0x08 /* Private */, + 15, 0, 129, 2, 0x08 /* Private */, + 16, 1, 130, 2, 0x08 /* Private */, + 18, 0, 133, 2, 0x08 /* Private */, + 19, 0, 134, 2, 0x08 /* Private */, + 20, 0, 135, 2, 0x08 /* Private */, + 21, 0, 136, 2, 0x08 /* Private */, + 22, 0, 137, 2, 0x08 /* Private */, + 23, 0, 138, 2, 0x08 /* Private */, + 24, 0, 139, 2, 0x08 /* Private */, // slots: parameters QMetaType::Void, QMetaType::Int, 3, @@ -88,6 +118,17 @@ static const uint qt_meta_data_TaskDecisionPage[] = { QMetaType::Void, QMetaType::Void, QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::QPoint, 17, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Void, 0 // eod @@ -102,12 +143,23 @@ void TaskDecisionPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int case 0: _t->onStepChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: _t->onTargetClearChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 2: _t->onGeneratePath(); break; - case 3: _t->onRecommendDrones(); break; - case 4: _t->onReplanSearch(); break; + case 3: _t->onAreaCoveragePlanning(); break; + case 4: _t->onSaveSearchData(); break; case 5: _t->onAddTargetType(); break; case 6: _t->onGenerateTask(); break; case 7: _t->onNextStep(); break; case 8: _t->onPrevStep(); break; + case 9: _t->onAddTarget(); break; + case 10: _t->onRemoveTarget(); break; + case 11: _t->onEditTarget(); break; + case 12: _t->onTargetTableContextMenu((*reinterpret_cast< const QPoint(*)>(_a[1]))); break; + case 13: _t->onTargetSelectionChanged(); break; + case 14: _t->onTargetPriorityChanged(); break; + case 15: _t->onTargetStrikeMethodChanged(); break; + case 16: _t->onSortTargetsByPriority(); break; + case 17: _t->onBatchUpdatePriority(); break; + case 18: _t->onBatchUpdateStrikeMethod(); break; + case 19: _t->onClearAllTargets(); break; default: ; } } @@ -142,13 +194,13 @@ int TaskDecisionPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a) if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 9) + if (_id < 20) qt_static_metacall(this, _c, _id, _a); - _id -= 9; + _id -= 20; } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 9) + if (_id < 20) *reinterpret_cast(_a[0]) = -1; - _id -= 9; + _id -= 20; } return _id; } diff --git a/build/moc_taskdecisionpage.o b/build/moc_taskdecisionpage.o index 2eeb2ef..7884db6 100644 Binary files a/build/moc_taskdecisionpage.o and b/build/moc_taskdecisionpage.o differ diff --git a/build/moc_visionmodelpage.cpp b/build/moc_visionmodelpage.cpp index 70e4391..db8516a 100644 --- a/build/moc_visionmodelpage.cpp +++ b/build/moc_visionmodelpage.cpp @@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED struct qt_meta_stringdata_VisionModelPage_t { - QByteArrayData data[7]; - char stringdata0[88]; + QByteArrayData data[21]; + char stringdata0[302]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -37,13 +37,33 @@ QT_MOC_LITERAL(1, 16, 17), // "modelRunRequested" QT_MOC_LITERAL(2, 34, 0), // "" QT_MOC_LITERAL(3, 35, 5), // "input" QT_MOC_LITERAL(4, 41, 18), // "modelStopRequested" -QT_MOC_LITERAL(5, 60, 12), // "onRunClicked" -QT_MOC_LITERAL(6, 73, 14) // "onInputChanged" +QT_MOC_LITERAL(5, 60, 18), // "detectionCompleted" +QT_MOC_LITERAL(6, 79, 7), // "results" +QT_MOC_LITERAL(7, 87, 12), // "onRunClicked" +QT_MOC_LITERAL(8, 100, 14), // "onInputChanged" +QT_MOC_LITERAL(9, 115, 18), // "onModelTypeChanged" +QT_MOC_LITERAL(10, 134, 19), // "onConfidenceChanged" +QT_MOC_LITERAL(11, 154, 17), // "onProcessFinished" +QT_MOC_LITERAL(12, 172, 8), // "exitCode" +QT_MOC_LITERAL(13, 181, 20), // "QProcess::ExitStatus" +QT_MOC_LITERAL(14, 202, 10), // "exitStatus" +QT_MOC_LITERAL(15, 213, 14), // "onProcessError" +QT_MOC_LITERAL(16, 228, 22), // "QProcess::ProcessError" +QT_MOC_LITERAL(17, 251, 5), // "error" +QT_MOC_LITERAL(18, 257, 15), // "onProcessOutput" +QT_MOC_LITERAL(19, 273, 13), // "onBrowseImage" +QT_MOC_LITERAL(20, 287, 14) // "onClearResults" }, "VisionModelPage\0modelRunRequested\0\0" - "input\0modelStopRequested\0onRunClicked\0" - "onInputChanged" + "input\0modelStopRequested\0detectionCompleted\0" + "results\0onRunClicked\0onInputChanged\0" + "onModelTypeChanged\0onConfidenceChanged\0" + "onProcessFinished\0exitCode\0" + "QProcess::ExitStatus\0exitStatus\0" + "onProcessError\0QProcess::ProcessError\0" + "error\0onProcessOutput\0onBrowseImage\0" + "onClearResults" }; #undef QT_MOC_LITERAL @@ -53,26 +73,42 @@ static const uint qt_meta_data_VisionModelPage[] = { 8, // revision 0, // classname 0, 0, // classinfo - 4, 14, // methods + 12, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags - 2, // signalCount + 3, // signalCount // signals: name, argc, parameters, tag, flags - 1, 1, 34, 2, 0x06 /* Public */, - 4, 0, 37, 2, 0x06 /* Public */, + 1, 1, 74, 2, 0x06 /* Public */, + 4, 0, 77, 2, 0x06 /* Public */, + 5, 1, 78, 2, 0x06 /* Public */, // slots: name, argc, parameters, tag, flags - 5, 0, 38, 2, 0x08 /* Private */, - 6, 0, 39, 2, 0x08 /* Private */, + 7, 0, 81, 2, 0x08 /* Private */, + 8, 0, 82, 2, 0x08 /* Private */, + 9, 0, 83, 2, 0x08 /* Private */, + 10, 0, 84, 2, 0x08 /* Private */, + 11, 2, 85, 2, 0x08 /* Private */, + 15, 1, 90, 2, 0x08 /* Private */, + 18, 0, 93, 2, 0x08 /* Private */, + 19, 0, 94, 2, 0x08 /* Private */, + 20, 0, 95, 2, 0x08 /* Private */, // signals: parameters QMetaType::Void, QMetaType::QString, 3, QMetaType::Void, + QMetaType::Void, QMetaType::QJsonObject, 6, // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 0x80000000 | 13, 12, 14, + QMetaType::Void, 0x80000000 | 16, 17, + QMetaType::Void, QMetaType::Void, QMetaType::Void, @@ -87,8 +123,16 @@ void VisionModelPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int switch (_id) { case 0: _t->modelRunRequested((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 1: _t->modelStopRequested(); break; - case 2: _t->onRunClicked(); break; - case 3: _t->onInputChanged(); break; + case 2: _t->detectionCompleted((*reinterpret_cast< const QJsonObject(*)>(_a[1]))); break; + case 3: _t->onRunClicked(); break; + case 4: _t->onInputChanged(); break; + case 5: _t->onModelTypeChanged(); break; + case 6: _t->onConfidenceChanged(); break; + case 7: _t->onProcessFinished((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QProcess::ExitStatus(*)>(_a[2]))); break; + case 8: _t->onProcessError((*reinterpret_cast< QProcess::ProcessError(*)>(_a[1]))); break; + case 9: _t->onProcessOutput(); break; + case 10: _t->onBrowseImage(); break; + case 11: _t->onClearResults(); break; default: ; } } else if (_c == QMetaObject::IndexOfMethod) { @@ -107,6 +151,13 @@ void VisionModelPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int return; } } + { + using _t = void (VisionModelPage::*)(const QJsonObject & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&VisionModelPage::detectionCompleted)) { + *result = 2; + return; + } + } } } @@ -139,13 +190,13 @@ int VisionModelPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a) if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 4) + if (_id < 12) qt_static_metacall(this, _c, _id, _a); - _id -= 4; + _id -= 12; } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 4) + if (_id < 12) *reinterpret_cast(_a[0]) = -1; - _id -= 4; + _id -= 12; } return _id; } @@ -162,5 +213,12 @@ void VisionModelPage::modelStopRequested() { QMetaObject::activate(this, &staticMetaObject, 1, nullptr); } + +// SIGNAL 2 +void VisionModelPage::detectionCompleted(const QJsonObject & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} QT_WARNING_POP QT_END_MOC_NAMESPACE diff --git a/build/moc_visionmodelpage.o b/build/moc_visionmodelpage.o index eeaa199..dffc539 100644 Binary files a/build/moc_visionmodelpage.o and b/build/moc_visionmodelpage.o differ diff --git a/build/targetdata.o b/build/targetdata.o new file mode 100644 index 0000000..ed5108b Binary files /dev/null and b/build/targetdata.o differ diff --git a/build/taskdecisionpage.o b/build/taskdecisionpage.o index 0ab544e..6d8a7b6 100644 Binary files a/build/taskdecisionpage.o and b/build/taskdecisionpage.o differ diff --git a/build/visionmodelpage.o b/build/visionmodelpage.o index 94751fb..e6ccff9 100644 Binary files a/build/visionmodelpage.o and b/build/visionmodelpage.o differ diff --git a/data_area/search_data_20251023_100942.json b/data_area/search_data_20251023_100942.json new file mode 100644 index 0000000..2b67ee3 --- /dev/null +++ b/data_area/search_data_20251023_100942.json @@ -0,0 +1,27 @@ +{ + "coverage": "覆盖范围: 100%", + "coveragePathData": "[{\"pathColor\":\"#E53935\",\"circleColor\":\"#1E88E5\",\"radius\":80.00,\"path\":[[113.557234,28.565234],[113.557952,28.565234],[113.558670,28.565234],[113.559389,28.565234],[113.560107,28.565234],[113.560825,28.565234],[113.561543,28.565234],[113.562261,28.565234],[113.562979,28.565234],[113.563697,28.565234],[113.564415,28.565234],[113.565133,28.565234],[113.565851,28.565234],[113.566570,28.565234],[113.567288,28.565234],[113.568006,28.565234],[113.568724,28.565234],[113.569442,28.565234],[113.570160,28.565234],[113.570878,28.565234],[113.571596,28.565234],[113.572314,28.565234],[113.573032,28.565234],[113.573750,28.565234],[113.574469,28.565234],[113.574766,28.565234],[113.574766,28.565865],[113.574469,28.565865],[113.573750,28.565865],[113.573032,28.565865],[113.572314,28.565865],[113.571596,28.565865],[113.570878,28.565865],[113.570160,28.565865],[113.569442,28.565865],[113.568724,28.565865],[113.568006,28.565865],[113.567288,28.565865],[113.566570,28.565865],[113.565851,28.565865],[113.565133,28.565865],[113.564415,28.565865],[113.563697,28.565865],[113.562979,28.565865],[113.562261,28.565865],[113.561543,28.565865],[113.560825,28.565865],[113.560107,28.565865],[113.559389,28.565865],[113.558670,28.565865],[113.557952,28.565865],[113.557234,28.565865],[113.557234,28.566496],[113.557952,28.566496],[113.558670,28.566496],[113.559389,28.566496],[113.560107,28.566496],[113.560825,28.566496],[113.561543,28.566496],[113.562261,28.566496],[113.562979,28.566496],[113.563697,28.566496],[113.564415,28.566496],[113.565133,28.566496],[113.565851,28.566496],[113.566570,28.566496],[113.567288,28.566496],[113.568006,28.566496],[113.568724,28.566496],[113.569442,28.566496],[113.570160,28.566496],[113.570878,28.566496],[113.571596,28.566496],[113.572314,28.566496],[113.573032,28.566496],[113.573750,28.566496],[113.574469,28.566496],[113.574766,28.566496],[113.574766,28.567126],[113.574469,28.567126],[113.573750,28.567126],[113.573032,28.567126],[113.572314,28.567126],[113.571596,28.567126],[113.570878,28.567126],[113.570160,28.567126],[113.569442,28.567126],[113.568724,28.567126],[113.568006,28.567126],[113.567288,28.567126],[113.566570,28.567126],[113.565851,28.567126],[113.565133,28.567126],[113.564415,28.567126],[113.563697,28.567126],[113.562979,28.567126],[113.562261,28.567126],[113.561543,28.567126],[113.560825,28.567126],[113.560107,28.567126],[113.559389,28.567126],[113.558670,28.567126],[113.557952,28.567126],[113.557234,28.567126],[113.557234,28.567757],[113.557952,28.567757],[113.558670,28.567757],[113.559389,28.567757],[113.560107,28.567757],[113.560825,28.567757],[113.561543,28.567757],[113.562261,28.567757],[113.562979,28.567757],[113.563697,28.567757],[113.564415,28.567757],[113.565133,28.567757],[113.565851,28.567757],[113.566570,28.567757],[113.567288,28.567757],[113.568006,28.567757],[113.568724,28.567757],[113.569442,28.567757],[113.570160,28.567757],[113.570878,28.567757],[113.571596,28.567757],[113.572314,28.567757],[113.573032,28.567757],[113.573750,28.567757],[113.574469,28.567757],[113.574766,28.567757],[113.574766,28.568387],[113.574469,28.568387],[113.573750,28.568387],[113.573032,28.568387],[113.572314,28.568387],[113.571596,28.568387],[113.570878,28.568387],[113.570160,28.568387],[113.569442,28.568387],[113.568724,28.568387],[113.568006,28.568387],[113.567288,28.568387],[113.566570,28.568387],[113.565851,28.568387],[113.565133,28.568387],[113.564415,28.568387],[113.563697,28.568387],[113.562979,28.568387],[113.562261,28.568387],[113.561543,28.568387],[113.560825,28.568387],[113.560107,28.568387],[113.559389,28.568387],[113.558670,28.568387],[113.557952,28.568387],[113.557234,28.568387],[113.557234,28.569018],[113.557952,28.569018],[113.558670,28.569018],[113.559389,28.569018],[113.560107,28.569018],[113.560825,28.569018],[113.561543,28.569018],[113.562261,28.569018],[113.562979,28.569018],[113.563697,28.569018],[113.564415,28.569018],[113.565133,28.569018],[113.565851,28.569018],[113.566570,28.569018],[113.567288,28.569018],[113.568006,28.569018],[113.568724,28.569018],[113.569442,28.569018],[113.570160,28.569018],[113.570878,28.569018],[113.571596,28.569018],[113.572314,28.569018],[113.573032,28.569018],[113.573750,28.569018],[113.574469,28.569018],[113.574766,28.569018],[113.574766,28.569649],[113.574469,28.569649],[113.573750,28.569649],[113.573032,28.569649],[113.572314,28.569649],[113.571596,28.569649],[113.570878,28.569649],[113.570160,28.569649],[113.569442,28.569649],[113.568724,28.569649],[113.568006,28.569649],[113.567288,28.569649],[113.566570,28.569649],[113.565851,28.569649],[113.565133,28.569649],[113.564415,28.569649],[113.563697,28.569649],[113.562979,28.569649],[113.562261,28.569649],[113.561543,28.569649],[113.560825,28.569649],[113.560107,28.569649],[113.559389,28.569649],[113.558670,28.569649],[113.557952,28.569649],[113.557234,28.569649],[113.557234,28.570279],[113.557952,28.570279],[113.558670,28.570279],[113.559389,28.570279],[113.560107,28.570279],[113.560825,28.570279],[113.561543,28.570279],[113.562261,28.570279],[113.562979,28.570279],[113.563697,28.570279],[113.564415,28.570279],[113.565133,28.570279],[113.565851,28.570279],[113.566570,28.570279],[113.567288,28.570279],[113.568006,28.570279],[113.568724,28.570279],[113.569442,28.570279],[113.570160,28.570279],[113.570878,28.570279],[113.571596,28.570279],[113.572314,28.570279],[113.573032,28.570279],[113.573750,28.570279],[113.574469,28.570279],[113.574766,28.570279],[113.569442,28.570910],[113.568724,28.570910],[113.568006,28.570910],[113.567288,28.570910],[113.566570,28.570910],[113.565851,28.570910],[113.565133,28.570910],[113.564415,28.570910],[113.563697,28.570910],[113.562979,28.570910],[113.562261,28.570910],[113.561543,28.570910],[113.560825,28.570910],[113.560107,28.570910],[113.559389,28.570910],[113.558670,28.570910],[113.557952,28.570910],[113.557234,28.570910]]},{\"pathColor\":\"#1E88E5\",\"circleColor\":\"#8E24AA\",\"radius\":100.00,\"path\":[[113.570160,28.570910],[113.570878,28.570910],[113.571596,28.570910],[113.572314,28.570910],[113.573032,28.570910],[113.573750,28.570910],[113.574469,28.570910],[113.574766,28.570910],[113.557234,28.571541],[113.557952,28.571541],[113.558670,28.571541],[113.559389,28.571541],[113.560107,28.571541],[113.560825,28.571541],[113.561543,28.571541],[113.562261,28.571541],[113.562979,28.571541],[113.563697,28.571541],[113.564415,28.571541],[113.565133,28.571541],[113.565851,28.571541],[113.566570,28.571541],[113.567288,28.571541],[113.568006,28.571541],[113.568724,28.571541],[113.569442,28.571541],[113.569442,28.572171],[113.568724,28.572171],[113.568006,28.572171],[113.567288,28.572171],[113.566570,28.572171],[113.565851,28.572171],[113.565133,28.572171],[113.564415,28.572171],[113.563697,28.572171],[113.562979,28.572171],[113.562261,28.572171],[113.561543,28.572171],[113.560825,28.572171],[113.560107,28.572171],[113.559389,28.572171],[113.558670,28.572171],[113.557952,28.572171],[113.557234,28.572171],[113.574766,28.571541],[113.574469,28.571541],[113.573750,28.571541],[113.573032,28.571541],[113.572314,28.571541],[113.571596,28.571541],[113.570878,28.571541],[113.570160,28.571541],[113.570160,28.572171],[113.570878,28.572171],[113.571596,28.572171],[113.572314,28.572171],[113.573032,28.572171],[113.573750,28.572171],[113.574469,28.572171],[113.574766,28.572171],[113.557234,28.572802],[113.557952,28.572802],[113.558670,28.572802],[113.559389,28.572802],[113.560107,28.572802],[113.560825,28.572802],[113.561543,28.572802],[113.562261,28.572802],[113.562979,28.572802],[113.563697,28.572802],[113.564415,28.572802],[113.565133,28.572802],[113.565851,28.572802],[113.566570,28.572802],[113.567288,28.572802],[113.568006,28.572802],[113.568724,28.572802],[113.569442,28.572802],[113.569442,28.573432],[113.568724,28.573432],[113.568006,28.573432],[113.567288,28.573432],[113.566570,28.573432],[113.565851,28.573432],[113.565133,28.573432],[113.564415,28.573432],[113.563697,28.573432],[113.562979,28.573432],[113.562261,28.573432],[113.561543,28.573432],[113.560825,28.573432],[113.560107,28.573432],[113.559389,28.573432],[113.558670,28.573432],[113.557952,28.573432],[113.557234,28.573432],[113.574766,28.572802],[113.574469,28.572802],[113.573750,28.572802],[113.573032,28.572802],[113.572314,28.572802],[113.571596,28.572802],[113.570878,28.572802],[113.570160,28.572802],[113.570160,28.573432],[113.570878,28.573432],[113.571596,28.573432],[113.572314,28.573432],[113.573032,28.573432],[113.573750,28.573432],[113.574469,28.573432],[113.574766,28.573432],[113.557234,28.574063],[113.557952,28.574063],[113.558670,28.574063],[113.559389,28.574063],[113.560107,28.574063],[113.560825,28.574063],[113.561543,28.574063],[113.562261,28.574063],[113.562979,28.574063],[113.563697,28.574063],[113.564415,28.574063],[113.565133,28.574063],[113.565851,28.574063],[113.566570,28.574063],[113.567288,28.574063],[113.568006,28.574063],[113.568724,28.574063],[113.569442,28.574063],[113.569442,28.574694],[113.568724,28.574694],[113.568006,28.574694],[113.567288,28.574694],[113.566570,28.574694],[113.565851,28.574694],[113.565133,28.574694],[113.564415,28.574694],[113.563697,28.574694],[113.562979,28.574694],[113.562261,28.574694],[113.561543,28.574694],[113.560825,28.574694],[113.560107,28.574694],[113.559389,28.574694],[113.558670,28.574694],[113.557952,28.574694],[113.557234,28.574694],[113.574766,28.574063],[113.574469,28.574063],[113.573750,28.574063],[113.573032,28.574063],[113.572314,28.574063],[113.571596,28.574063],[113.570878,28.574063],[113.570160,28.574063],[113.570160,28.574694],[113.570878,28.574694],[113.571596,28.574694],[113.572314,28.574694],[113.573032,28.574694],[113.573750,28.574694],[113.574469,28.574694],[113.574766,28.574694],[113.557234,28.575324],[113.557952,28.575324],[113.558670,28.575324],[113.559389,28.575324],[113.560107,28.575324],[113.560825,28.575324],[113.561543,28.575324],[113.562261,28.575324],[113.562979,28.575324],[113.563697,28.575324],[113.564415,28.575324],[113.565133,28.575324],[113.565851,28.575324],[113.566570,28.575324],[113.567288,28.575324],[113.568006,28.575324],[113.568724,28.575324],[113.569442,28.575324],[113.569442,28.575955],[113.568724,28.575955],[113.568006,28.575955],[113.567288,28.575955],[113.566570,28.575955],[113.565851,28.575955],[113.565133,28.575955],[113.564415,28.575955],[113.563697,28.575955],[113.562979,28.575955],[113.562261,28.575955],[113.561543,28.575955],[113.560825,28.575955],[113.560107,28.575955],[113.559389,28.575955],[113.558670,28.575955],[113.557952,28.575955],[113.557234,28.575955],[113.574766,28.575324],[113.574469,28.575324],[113.573750,28.575324],[113.573032,28.575324],[113.572314,28.575324],[113.571596,28.575324],[113.570878,28.575324],[113.570160,28.575324],[113.570160,28.575955],[113.570878,28.575955],[113.571596,28.575955],[113.572314,28.575955],[113.573032,28.575955],[113.573750,28.575955],[113.574469,28.575955],[113.574766,28.575955],[113.557234,28.576586],[113.557952,28.576586],[113.558670,28.576586],[113.559389,28.576586],[113.560107,28.576586],[113.560825,28.576586],[113.561543,28.576586],[113.562261,28.576586],[113.562979,28.576586],[113.563697,28.576586],[113.564415,28.576586],[113.565133,28.576586],[113.565851,28.576586],[113.566570,28.576586],[113.567288,28.576586],[113.568006,28.576586],[113.568724,28.576586],[113.569442,28.576586],[113.563697,28.577216],[113.562979,28.577216],[113.562261,28.577216],[113.561543,28.577216],[113.560825,28.577216],[113.560107,28.577216],[113.559389,28.577216],[113.558670,28.577216],[113.557952,28.577216],[113.557234,28.577216],[113.574766,28.576586],[113.574469,28.576586],[113.573750,28.576586],[113.573032,28.576586],[113.572314,28.576586],[113.571596,28.576586],[113.570878,28.576586],[113.570160,28.576586]]},{\"pathColor\":\"#8E24AA\",\"circleColor\":\"#F06292\",\"radius\":120.00,\"path\":[[113.564415,28.577216],[113.565133,28.577216],[113.565851,28.577216],[113.566570,28.577216],[113.567288,28.577216],[113.568006,28.577216],[113.568724,28.577216],[113.569442,28.577216],[113.570160,28.577216],[113.570878,28.577216],[113.571596,28.577216],[113.572314,28.577216],[113.573032,28.577216],[113.573750,28.577216],[113.574469,28.577216],[113.574766,28.577216],[113.557234,28.577847],[113.557952,28.577847],[113.558670,28.577847],[113.559389,28.577847],[113.560107,28.577847],[113.560825,28.577847],[113.561543,28.577847],[113.562261,28.577847],[113.562979,28.577847],[113.563697,28.577847],[113.563697,28.578478],[113.562979,28.578478],[113.562261,28.578478],[113.561543,28.578478],[113.560825,28.578478],[113.560107,28.578478],[113.559389,28.578478],[113.558670,28.578478],[113.557952,28.578478],[113.557234,28.578478],[113.574766,28.577847],[113.574469,28.577847],[113.573750,28.577847],[113.573032,28.577847],[113.572314,28.577847],[113.571596,28.577847],[113.570878,28.577847],[113.570160,28.577847],[113.569442,28.577847],[113.568724,28.577847],[113.568006,28.577847],[113.567288,28.577847],[113.566570,28.577847],[113.565851,28.577847],[113.565133,28.577847],[113.564415,28.577847],[113.564415,28.578478],[113.565133,28.578478],[113.565851,28.578478],[113.566570,28.578478],[113.567288,28.578478],[113.568006,28.578478],[113.568724,28.578478],[113.569442,28.578478],[113.570160,28.578478],[113.570878,28.578478],[113.571596,28.578478],[113.572314,28.578478],[113.573032,28.578478],[113.573750,28.578478],[113.574469,28.578478],[113.574766,28.578478],[113.557234,28.579108],[113.557952,28.579108],[113.558670,28.579108],[113.559389,28.579108],[113.560107,28.579108],[113.560825,28.579108],[113.561543,28.579108],[113.562261,28.579108],[113.562979,28.579108],[113.563697,28.579108],[113.563697,28.579739],[113.562979,28.579739],[113.562261,28.579739],[113.561543,28.579739],[113.560825,28.579739],[113.560107,28.579739],[113.559389,28.579739],[113.558670,28.579739],[113.557952,28.579739],[113.557234,28.579739],[113.574766,28.579108],[113.574469,28.579108],[113.573750,28.579108],[113.573032,28.579108],[113.572314,28.579108],[113.571596,28.579108],[113.570878,28.579108],[113.570160,28.579108],[113.569442,28.579108],[113.568724,28.579108],[113.568006,28.579108],[113.567288,28.579108],[113.566570,28.579108],[113.565851,28.579108],[113.565133,28.579108],[113.564415,28.579108],[113.564415,28.579739],[113.565133,28.579739],[113.565851,28.579739],[113.566570,28.579739],[113.567288,28.579739],[113.568006,28.579739],[113.568724,28.579739],[113.569442,28.579739],[113.570160,28.579739],[113.570878,28.579739],[113.571596,28.579739],[113.572314,28.579739],[113.573032,28.579739],[113.573750,28.579739],[113.574469,28.579739],[113.574766,28.579739],[113.557234,28.580369],[113.557952,28.580369],[113.558670,28.580369],[113.559389,28.580369],[113.560107,28.580369],[113.560825,28.580369],[113.561543,28.580369],[113.562261,28.580369],[113.562979,28.580369],[113.563697,28.580369],[113.563697,28.581000],[113.562979,28.581000],[113.562261,28.581000],[113.561543,28.581000],[113.560825,28.581000],[113.560107,28.581000],[113.559389,28.581000],[113.558670,28.581000],[113.557952,28.581000],[113.557234,28.581000],[113.574766,28.580369],[113.574469,28.580369],[113.573750,28.580369],[113.573032,28.580369],[113.572314,28.580369],[113.571596,28.580369],[113.570878,28.580369],[113.570160,28.580369],[113.569442,28.580369],[113.568724,28.580369],[113.568006,28.580369],[113.567288,28.580369],[113.566570,28.580369],[113.565851,28.580369],[113.565133,28.580369],[113.564415,28.580369],[113.564415,28.581000],[113.565133,28.581000],[113.565851,28.581000],[113.566570,28.581000],[113.567288,28.581000],[113.568006,28.581000],[113.568724,28.581000],[113.569442,28.581000],[113.570160,28.581000],[113.570878,28.581000],[113.571596,28.581000],[113.572314,28.581000],[113.573032,28.581000],[113.573750,28.581000],[113.574469,28.581000],[113.574766,28.581000],[113.557234,28.581631],[113.557952,28.581631],[113.558670,28.581631],[113.559389,28.581631],[113.560107,28.581631],[113.560825,28.581631],[113.561543,28.581631],[113.562261,28.581631],[113.562979,28.581631],[113.563697,28.581631],[113.563697,28.582261],[113.562979,28.582261],[113.562261,28.582261],[113.561543,28.582261],[113.560825,28.582261],[113.560107,28.582261],[113.559389,28.582261],[113.558670,28.582261],[113.557952,28.582261],[113.557234,28.582261],[113.574766,28.581631],[113.574469,28.581631],[113.573750,28.581631],[113.573032,28.581631],[113.572314,28.581631],[113.571596,28.581631],[113.570878,28.581631],[113.570160,28.581631],[113.569442,28.581631],[113.568724,28.581631],[113.568006,28.581631],[113.567288,28.581631],[113.566570,28.581631],[113.565851,28.581631],[113.565133,28.581631],[113.564415,28.581631],[113.564415,28.582261],[113.565133,28.582261],[113.565851,28.582261],[113.566570,28.582261],[113.567288,28.582261],[113.568006,28.582261],[113.568724,28.582261],[113.569442,28.582261],[113.570160,28.582261],[113.570878,28.582261],[113.571596,28.582261],[113.572314,28.582261],[113.573032,28.582261],[113.573750,28.582261],[113.574469,28.582261],[113.574766,28.582261],[113.557234,28.582766],[113.557952,28.582766],[113.558670,28.582766],[113.559389,28.582766],[113.560107,28.582766],[113.560825,28.582766],[113.561543,28.582766],[113.562261,28.582766],[113.562979,28.582766],[113.563697,28.582766],[113.574766,28.582766],[113.574469,28.582766],[113.573750,28.582766],[113.573032,28.582766],[113.572314,28.582766],[113.571596,28.582766],[113.570878,28.582766],[113.570160,28.582766],[113.569442,28.582766],[113.568724,28.582766],[113.568006,28.582766],[113.567288,28.582766],[113.566570,28.582766],[113.565851,28.582766],[113.565133,28.582766],[113.564415,28.582766]]}]", + "droneCount": 3, + "searchTime": "预计搜索时间: 37.9min", + "tableData": [ + { + "coverage": "5.1%", + "droneId": "Drone 1", + "path": "覆盖路径 (252个点)", + "time": "19.7min" + }, + { + "coverage": "7.9%", + "droneId": "Drone 2", + "path": "覆盖路径 (252个点)", + "time": "37.9min" + }, + { + "coverage": "11.3%", + "droneId": "Drone 3", + "path": "覆盖路径 (250个点)", + "time": "36.5min" + } + ], + "timestamp": "2025-10-23 10:09:42" +} diff --git a/data_area/search_data_20251023_100952.json b/data_area/search_data_20251023_100952.json new file mode 100644 index 0000000..28b62f3 --- /dev/null +++ b/data_area/search_data_20251023_100952.json @@ -0,0 +1,27 @@ +{ + "coverage": "覆盖范围: 100%", + "coveragePathData": "[{\"pathColor\":\"#E53935\",\"circleColor\":\"#1E88E5\",\"radius\":80.00,\"path\":[[113.557234,28.565234],[113.557952,28.565234],[113.558670,28.565234],[113.559389,28.565234],[113.560107,28.565234],[113.560825,28.565234],[113.561543,28.565234],[113.562261,28.565234],[113.562979,28.565234],[113.563697,28.565234],[113.564415,28.565234],[113.565133,28.565234],[113.565851,28.565234],[113.566570,28.565234],[113.567288,28.565234],[113.568006,28.565234],[113.568724,28.565234],[113.569442,28.565234],[113.570160,28.565234],[113.570878,28.565234],[113.571596,28.565234],[113.572314,28.565234],[113.573032,28.565234],[113.573750,28.565234],[113.574469,28.565234],[113.574766,28.565234],[113.574766,28.565865],[113.574469,28.565865],[113.573750,28.565865],[113.573032,28.565865],[113.572314,28.565865],[113.571596,28.565865],[113.570878,28.565865],[113.570160,28.565865],[113.569442,28.565865],[113.568724,28.565865],[113.568006,28.565865],[113.567288,28.565865],[113.566570,28.565865],[113.565851,28.565865],[113.565133,28.565865],[113.564415,28.565865],[113.563697,28.565865],[113.562979,28.565865],[113.562261,28.565865],[113.561543,28.565865],[113.560825,28.565865],[113.560107,28.565865],[113.559389,28.565865],[113.558670,28.565865],[113.557952,28.565865],[113.557234,28.565865],[113.557234,28.566496],[113.557952,28.566496],[113.558670,28.566496],[113.559389,28.566496],[113.560107,28.566496],[113.560825,28.566496],[113.561543,28.566496],[113.562261,28.566496],[113.562979,28.566496],[113.563697,28.566496],[113.564415,28.566496],[113.565133,28.566496],[113.565851,28.566496],[113.566570,28.566496],[113.567288,28.566496],[113.568006,28.566496],[113.568724,28.566496],[113.569442,28.566496],[113.570160,28.566496],[113.570878,28.566496],[113.571596,28.566496],[113.572314,28.566496],[113.573032,28.566496],[113.573750,28.566496],[113.574469,28.566496],[113.574766,28.566496],[113.574766,28.567126],[113.574469,28.567126],[113.573750,28.567126],[113.573032,28.567126],[113.572314,28.567126],[113.571596,28.567126],[113.570878,28.567126],[113.570160,28.567126],[113.569442,28.567126],[113.568724,28.567126],[113.568006,28.567126],[113.567288,28.567126],[113.566570,28.567126],[113.565851,28.567126],[113.565133,28.567126],[113.564415,28.567126],[113.563697,28.567126],[113.562979,28.567126],[113.562261,28.567126],[113.561543,28.567126],[113.560825,28.567126],[113.560107,28.567126],[113.559389,28.567126],[113.558670,28.567126],[113.557952,28.567126],[113.557234,28.567126],[113.557234,28.567757],[113.557952,28.567757],[113.558670,28.567757],[113.559389,28.567757],[113.560107,28.567757],[113.560825,28.567757],[113.561543,28.567757],[113.562261,28.567757],[113.562979,28.567757],[113.563697,28.567757],[113.564415,28.567757],[113.565133,28.567757],[113.565851,28.567757],[113.566570,28.567757],[113.567288,28.567757],[113.568006,28.567757],[113.568724,28.567757],[113.569442,28.567757],[113.570160,28.567757],[113.570878,28.567757],[113.571596,28.567757],[113.572314,28.567757],[113.573032,28.567757],[113.573750,28.567757],[113.574469,28.567757],[113.574766,28.567757],[113.574766,28.568387],[113.574469,28.568387],[113.573750,28.568387],[113.573032,28.568387],[113.572314,28.568387],[113.571596,28.568387],[113.570878,28.568387],[113.570160,28.568387],[113.569442,28.568387],[113.568724,28.568387],[113.568006,28.568387],[113.567288,28.568387],[113.566570,28.568387],[113.565851,28.568387],[113.565133,28.568387],[113.564415,28.568387],[113.563697,28.568387],[113.562979,28.568387],[113.562261,28.568387],[113.561543,28.568387],[113.560825,28.568387],[113.560107,28.568387],[113.559389,28.568387],[113.558670,28.568387],[113.557952,28.568387],[113.557234,28.568387],[113.557234,28.569018],[113.557952,28.569018],[113.558670,28.569018],[113.559389,28.569018],[113.560107,28.569018],[113.560825,28.569018],[113.561543,28.569018],[113.562261,28.569018],[113.562979,28.569018],[113.563697,28.569018],[113.564415,28.569018],[113.565133,28.569018],[113.565851,28.569018],[113.566570,28.569018],[113.567288,28.569018],[113.568006,28.569018],[113.568724,28.569018],[113.569442,28.569018],[113.570160,28.569018],[113.570878,28.569018],[113.571596,28.569018],[113.572314,28.569018],[113.573032,28.569018],[113.573750,28.569018],[113.574469,28.569018],[113.574766,28.569018],[113.574766,28.569649],[113.574469,28.569649],[113.573750,28.569649],[113.573032,28.569649],[113.572314,28.569649],[113.571596,28.569649],[113.570878,28.569649],[113.570160,28.569649],[113.569442,28.569649],[113.568724,28.569649],[113.568006,28.569649],[113.567288,28.569649],[113.566570,28.569649],[113.565851,28.569649],[113.565133,28.569649],[113.564415,28.569649],[113.563697,28.569649],[113.562979,28.569649],[113.562261,28.569649],[113.561543,28.569649],[113.560825,28.569649],[113.560107,28.569649],[113.559389,28.569649],[113.558670,28.569649],[113.557952,28.569649],[113.557234,28.569649],[113.557234,28.570279],[113.557952,28.570279],[113.558670,28.570279],[113.559389,28.570279],[113.560107,28.570279],[113.560825,28.570279],[113.561543,28.570279],[113.562261,28.570279],[113.562979,28.570279],[113.563697,28.570279],[113.564415,28.570279],[113.565133,28.570279],[113.565851,28.570279],[113.566570,28.570279],[113.567288,28.570279],[113.568006,28.570279],[113.568724,28.570279],[113.569442,28.570279],[113.570160,28.570279],[113.570878,28.570279],[113.571596,28.570279],[113.572314,28.570279],[113.573032,28.570279],[113.573750,28.570279],[113.574469,28.570279],[113.574766,28.570279],[113.569442,28.570910],[113.568724,28.570910],[113.568006,28.570910],[113.567288,28.570910],[113.566570,28.570910],[113.565851,28.570910],[113.565133,28.570910],[113.564415,28.570910],[113.563697,28.570910],[113.562979,28.570910],[113.562261,28.570910],[113.561543,28.570910],[113.560825,28.570910],[113.560107,28.570910],[113.559389,28.570910],[113.558670,28.570910],[113.557952,28.570910],[113.557234,28.570910]]},{\"pathColor\":\"#1E88E5\",\"circleColor\":\"#8E24AA\",\"radius\":100.00,\"path\":[[113.570160,28.570910],[113.570878,28.570910],[113.571596,28.570910],[113.572314,28.570910],[113.573032,28.570910],[113.573750,28.570910],[113.574469,28.570910],[113.574766,28.570910],[113.557234,28.571541],[113.557952,28.571541],[113.558670,28.571541],[113.559389,28.571541],[113.560107,28.571541],[113.560825,28.571541],[113.561543,28.571541],[113.562261,28.571541],[113.562979,28.571541],[113.563697,28.571541],[113.564415,28.571541],[113.565133,28.571541],[113.565851,28.571541],[113.566570,28.571541],[113.567288,28.571541],[113.568006,28.571541],[113.568724,28.571541],[113.569442,28.571541],[113.569442,28.572171],[113.568724,28.572171],[113.568006,28.572171],[113.567288,28.572171],[113.566570,28.572171],[113.565851,28.572171],[113.565133,28.572171],[113.564415,28.572171],[113.563697,28.572171],[113.562979,28.572171],[113.562261,28.572171],[113.561543,28.572171],[113.560825,28.572171],[113.560107,28.572171],[113.559389,28.572171],[113.558670,28.572171],[113.557952,28.572171],[113.557234,28.572171],[113.574766,28.571541],[113.574469,28.571541],[113.573750,28.571541],[113.573032,28.571541],[113.572314,28.571541],[113.571596,28.571541],[113.570878,28.571541],[113.570160,28.571541],[113.570160,28.572171],[113.570878,28.572171],[113.571596,28.572171],[113.572314,28.572171],[113.573032,28.572171],[113.573750,28.572171],[113.574469,28.572171],[113.574766,28.572171],[113.557234,28.572802],[113.557952,28.572802],[113.558670,28.572802],[113.559389,28.572802],[113.560107,28.572802],[113.560825,28.572802],[113.561543,28.572802],[113.562261,28.572802],[113.562979,28.572802],[113.563697,28.572802],[113.564415,28.572802],[113.565133,28.572802],[113.565851,28.572802],[113.566570,28.572802],[113.567288,28.572802],[113.568006,28.572802],[113.568724,28.572802],[113.569442,28.572802],[113.569442,28.573432],[113.568724,28.573432],[113.568006,28.573432],[113.567288,28.573432],[113.566570,28.573432],[113.565851,28.573432],[113.565133,28.573432],[113.564415,28.573432],[113.563697,28.573432],[113.562979,28.573432],[113.562261,28.573432],[113.561543,28.573432],[113.560825,28.573432],[113.560107,28.573432],[113.559389,28.573432],[113.558670,28.573432],[113.557952,28.573432],[113.557234,28.573432],[113.574766,28.572802],[113.574469,28.572802],[113.573750,28.572802],[113.573032,28.572802],[113.572314,28.572802],[113.571596,28.572802],[113.570878,28.572802],[113.570160,28.572802],[113.570160,28.573432],[113.570878,28.573432],[113.571596,28.573432],[113.572314,28.573432],[113.573032,28.573432],[113.573750,28.573432],[113.574469,28.573432],[113.574766,28.573432],[113.557234,28.574063],[113.557952,28.574063],[113.558670,28.574063],[113.559389,28.574063],[113.560107,28.574063],[113.560825,28.574063],[113.561543,28.574063],[113.562261,28.574063],[113.562979,28.574063],[113.563697,28.574063],[113.564415,28.574063],[113.565133,28.574063],[113.565851,28.574063],[113.566570,28.574063],[113.567288,28.574063],[113.568006,28.574063],[113.568724,28.574063],[113.569442,28.574063],[113.569442,28.574694],[113.568724,28.574694],[113.568006,28.574694],[113.567288,28.574694],[113.566570,28.574694],[113.565851,28.574694],[113.565133,28.574694],[113.564415,28.574694],[113.563697,28.574694],[113.562979,28.574694],[113.562261,28.574694],[113.561543,28.574694],[113.560825,28.574694],[113.560107,28.574694],[113.559389,28.574694],[113.558670,28.574694],[113.557952,28.574694],[113.557234,28.574694],[113.574766,28.574063],[113.574469,28.574063],[113.573750,28.574063],[113.573032,28.574063],[113.572314,28.574063],[113.571596,28.574063],[113.570878,28.574063],[113.570160,28.574063],[113.570160,28.574694],[113.570878,28.574694],[113.571596,28.574694],[113.572314,28.574694],[113.573032,28.574694],[113.573750,28.574694],[113.574469,28.574694],[113.574766,28.574694],[113.557234,28.575324],[113.557952,28.575324],[113.558670,28.575324],[113.559389,28.575324],[113.560107,28.575324],[113.560825,28.575324],[113.561543,28.575324],[113.562261,28.575324],[113.562979,28.575324],[113.563697,28.575324],[113.564415,28.575324],[113.565133,28.575324],[113.565851,28.575324],[113.566570,28.575324],[113.567288,28.575324],[113.568006,28.575324],[113.568724,28.575324],[113.569442,28.575324],[113.569442,28.575955],[113.568724,28.575955],[113.568006,28.575955],[113.567288,28.575955],[113.566570,28.575955],[113.565851,28.575955],[113.565133,28.575955],[113.564415,28.575955],[113.563697,28.575955],[113.562979,28.575955],[113.562261,28.575955],[113.561543,28.575955],[113.560825,28.575955],[113.560107,28.575955],[113.559389,28.575955],[113.558670,28.575955],[113.557952,28.575955],[113.557234,28.575955],[113.574766,28.575324],[113.574469,28.575324],[113.573750,28.575324],[113.573032,28.575324],[113.572314,28.575324],[113.571596,28.575324],[113.570878,28.575324],[113.570160,28.575324],[113.570160,28.575955],[113.570878,28.575955],[113.571596,28.575955],[113.572314,28.575955],[113.573032,28.575955],[113.573750,28.575955],[113.574469,28.575955],[113.574766,28.575955],[113.557234,28.576586],[113.557952,28.576586],[113.558670,28.576586],[113.559389,28.576586],[113.560107,28.576586],[113.560825,28.576586],[113.561543,28.576586],[113.562261,28.576586],[113.562979,28.576586],[113.563697,28.576586],[113.564415,28.576586],[113.565133,28.576586],[113.565851,28.576586],[113.566570,28.576586],[113.567288,28.576586],[113.568006,28.576586],[113.568724,28.576586],[113.569442,28.576586],[113.563697,28.577216],[113.562979,28.577216],[113.562261,28.577216],[113.561543,28.577216],[113.560825,28.577216],[113.560107,28.577216],[113.559389,28.577216],[113.558670,28.577216],[113.557952,28.577216],[113.557234,28.577216],[113.574766,28.576586],[113.574469,28.576586],[113.573750,28.576586],[113.573032,28.576586],[113.572314,28.576586],[113.571596,28.576586],[113.570878,28.576586],[113.570160,28.576586]]},{\"pathColor\":\"#8E24AA\",\"circleColor\":\"#F06292\",\"radius\":120.00,\"path\":[[113.564415,28.577216],[113.565133,28.577216],[113.565851,28.577216],[113.566570,28.577216],[113.567288,28.577216],[113.568006,28.577216],[113.568724,28.577216],[113.569442,28.577216],[113.570160,28.577216],[113.570878,28.577216],[113.571596,28.577216],[113.572314,28.577216],[113.573032,28.577216],[113.573750,28.577216],[113.574469,28.577216],[113.574766,28.577216],[113.557234,28.577847],[113.557952,28.577847],[113.558670,28.577847],[113.559389,28.577847],[113.560107,28.577847],[113.560825,28.577847],[113.561543,28.577847],[113.562261,28.577847],[113.562979,28.577847],[113.563697,28.577847],[113.563697,28.578478],[113.562979,28.578478],[113.562261,28.578478],[113.561543,28.578478],[113.560825,28.578478],[113.560107,28.578478],[113.559389,28.578478],[113.558670,28.578478],[113.557952,28.578478],[113.557234,28.578478],[113.574766,28.577847],[113.574469,28.577847],[113.573750,28.577847],[113.573032,28.577847],[113.572314,28.577847],[113.571596,28.577847],[113.570878,28.577847],[113.570160,28.577847],[113.569442,28.577847],[113.568724,28.577847],[113.568006,28.577847],[113.567288,28.577847],[113.566570,28.577847],[113.565851,28.577847],[113.565133,28.577847],[113.564415,28.577847],[113.564415,28.578478],[113.565133,28.578478],[113.565851,28.578478],[113.566570,28.578478],[113.567288,28.578478],[113.568006,28.578478],[113.568724,28.578478],[113.569442,28.578478],[113.570160,28.578478],[113.570878,28.578478],[113.571596,28.578478],[113.572314,28.578478],[113.573032,28.578478],[113.573750,28.578478],[113.574469,28.578478],[113.574766,28.578478],[113.557234,28.579108],[113.557952,28.579108],[113.558670,28.579108],[113.559389,28.579108],[113.560107,28.579108],[113.560825,28.579108],[113.561543,28.579108],[113.562261,28.579108],[113.562979,28.579108],[113.563697,28.579108],[113.563697,28.579739],[113.562979,28.579739],[113.562261,28.579739],[113.561543,28.579739],[113.560825,28.579739],[113.560107,28.579739],[113.559389,28.579739],[113.558670,28.579739],[113.557952,28.579739],[113.557234,28.579739],[113.574766,28.579108],[113.574469,28.579108],[113.573750,28.579108],[113.573032,28.579108],[113.572314,28.579108],[113.571596,28.579108],[113.570878,28.579108],[113.570160,28.579108],[113.569442,28.579108],[113.568724,28.579108],[113.568006,28.579108],[113.567288,28.579108],[113.566570,28.579108],[113.565851,28.579108],[113.565133,28.579108],[113.564415,28.579108],[113.564415,28.579739],[113.565133,28.579739],[113.565851,28.579739],[113.566570,28.579739],[113.567288,28.579739],[113.568006,28.579739],[113.568724,28.579739],[113.569442,28.579739],[113.570160,28.579739],[113.570878,28.579739],[113.571596,28.579739],[113.572314,28.579739],[113.573032,28.579739],[113.573750,28.579739],[113.574469,28.579739],[113.574766,28.579739],[113.557234,28.580369],[113.557952,28.580369],[113.558670,28.580369],[113.559389,28.580369],[113.560107,28.580369],[113.560825,28.580369],[113.561543,28.580369],[113.562261,28.580369],[113.562979,28.580369],[113.563697,28.580369],[113.563697,28.581000],[113.562979,28.581000],[113.562261,28.581000],[113.561543,28.581000],[113.560825,28.581000],[113.560107,28.581000],[113.559389,28.581000],[113.558670,28.581000],[113.557952,28.581000],[113.557234,28.581000],[113.574766,28.580369],[113.574469,28.580369],[113.573750,28.580369],[113.573032,28.580369],[113.572314,28.580369],[113.571596,28.580369],[113.570878,28.580369],[113.570160,28.580369],[113.569442,28.580369],[113.568724,28.580369],[113.568006,28.580369],[113.567288,28.580369],[113.566570,28.580369],[113.565851,28.580369],[113.565133,28.580369],[113.564415,28.580369],[113.564415,28.581000],[113.565133,28.581000],[113.565851,28.581000],[113.566570,28.581000],[113.567288,28.581000],[113.568006,28.581000],[113.568724,28.581000],[113.569442,28.581000],[113.570160,28.581000],[113.570878,28.581000],[113.571596,28.581000],[113.572314,28.581000],[113.573032,28.581000],[113.573750,28.581000],[113.574469,28.581000],[113.574766,28.581000],[113.557234,28.581631],[113.557952,28.581631],[113.558670,28.581631],[113.559389,28.581631],[113.560107,28.581631],[113.560825,28.581631],[113.561543,28.581631],[113.562261,28.581631],[113.562979,28.581631],[113.563697,28.581631],[113.563697,28.582261],[113.562979,28.582261],[113.562261,28.582261],[113.561543,28.582261],[113.560825,28.582261],[113.560107,28.582261],[113.559389,28.582261],[113.558670,28.582261],[113.557952,28.582261],[113.557234,28.582261],[113.574766,28.581631],[113.574469,28.581631],[113.573750,28.581631],[113.573032,28.581631],[113.572314,28.581631],[113.571596,28.581631],[113.570878,28.581631],[113.570160,28.581631],[113.569442,28.581631],[113.568724,28.581631],[113.568006,28.581631],[113.567288,28.581631],[113.566570,28.581631],[113.565851,28.581631],[113.565133,28.581631],[113.564415,28.581631],[113.564415,28.582261],[113.565133,28.582261],[113.565851,28.582261],[113.566570,28.582261],[113.567288,28.582261],[113.568006,28.582261],[113.568724,28.582261],[113.569442,28.582261],[113.570160,28.582261],[113.570878,28.582261],[113.571596,28.582261],[113.572314,28.582261],[113.573032,28.582261],[113.573750,28.582261],[113.574469,28.582261],[113.574766,28.582261],[113.557234,28.582766],[113.557952,28.582766],[113.558670,28.582766],[113.559389,28.582766],[113.560107,28.582766],[113.560825,28.582766],[113.561543,28.582766],[113.562261,28.582766],[113.562979,28.582766],[113.563697,28.582766],[113.574766,28.582766],[113.574469,28.582766],[113.573750,28.582766],[113.573032,28.582766],[113.572314,28.582766],[113.571596,28.582766],[113.570878,28.582766],[113.570160,28.582766],[113.569442,28.582766],[113.568724,28.582766],[113.568006,28.582766],[113.567288,28.582766],[113.566570,28.582766],[113.565851,28.582766],[113.565133,28.582766],[113.564415,28.582766]]}]", + "droneCount": 3, + "searchTime": "预计搜索时间: 37.9min", + "tableData": [ + { + "coverage": "5.1%", + "droneId": "Drone 1", + "path": "覆盖路径 (252个点)", + "time": "19.7min" + }, + { + "coverage": "7.9%", + "droneId": "Drone 2", + "path": "覆盖路径 (252个点)", + "time": "37.9min" + }, + { + "coverage": "11.3%", + "droneId": "Drone 3", + "path": "覆盖路径 (250个点)", + "time": "36.5min" + } + ], + "timestamp": "2025-10-23 10:09:52" +}