diff --git a/chart_plugin/src/slt_space/slt_space_draw.cpp b/chart_plugin/src/slt_space/slt_space_draw.cpp index 99839d45d0f8f3bba2829aa3086bf75a93c9f76f..5430f0f1321436e481c831728b5828ed7677b5c3 100755 --- a/chart_plugin/src/slt_space/slt_space_draw.cpp +++ b/chart_plugin/src/slt_space/slt_space_draw.cpp @@ -143,6 +143,9 @@ void SltSpaceDraw::DrawObjects(mglGraph *mglGraphPtr) const if (spaceDisplayPtr->GetIsTopicMessageComing()) { spaceDisplayPtr->SetIsTopicMessageComing(false); + if (spaceDisplayPtr->IsObjectsSizeAndIdSame(objectsIdType)) { + return; + } spaceDisplayPtr->CreateObjectsLegend(objectsIdType); spaceDisplayPtr->UpdateLegend(); } else { diff --git a/chart_plugin/src/slt_space_display.cpp b/chart_plugin/src/slt_space_display.cpp index 4a4362b9ec2fa06e0eeaafc417ccd6f5d8d8df2c..28e663820f30c3c585aee2d4898def5f51954c25 100755 --- a/chart_plugin/src/slt_space_display.cpp +++ b/chart_plugin/src/slt_space_display.cpp @@ -528,6 +528,19 @@ void SltSpaceDisplay::UpdateDrawQMathGl() const ui.GetQMathGl()->refresh(); } +bool SltSpaceDisplay::IsObjectsSizeAndIdSame(const QMap &objectsIdType) const +{ + if (objectsIdType.size() == objectsIdLegendMap.size()) { + for (auto iter = objectsIdLegendMap.begin(); iter != objectsIdLegendMap.end(); iter++) { + if (!objectsIdType.contains(iter->first)) { + return false; + } + } + return true; + } + return false; +} + void SltSpaceDisplay::onInitialize() { InitProperty(); diff --git a/chart_plugin/src/slt_space_display.h b/chart_plugin/src/slt_space_display.h index 1419982866b92aabe1a658b92de0b013d59b6265..ff6d32868df8fc981865b61076056af2e43b16f7 100755 --- a/chart_plugin/src/slt_space_display.h +++ b/chart_plugin/src/slt_space_display.h @@ -198,6 +198,14 @@ public: */ void UpdateDrawQMathGl() const; + /* + * 功能:是否和原来障碍物一样 + * 输入参数:无 + * 输出参数:无 + * 返回值:bool + */ + bool IsObjectsSizeAndIdSame(const QMap &objectsIdType) const; + public Q_SLOTS: /* * 功能:更新曲线属性控制选项为用户所选择的曲线