From cdd403e5e02c1ead1f976c66d5f70af8696978d8 Mon Sep 17 00:00:00 2001 From: cbwu <504-wuchengbo@htsdfp.com> Date: Fri, 23 Aug 2024 15:36:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=9A=E6=9C=BA?= =?UTF-8?q?=E8=87=AA=E4=B8=BB=E7=9D=80=E9=99=86=E7=82=B9=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E5=AF=B9=E5=A4=96=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=87=AA=E4=B8=BB=E7=9D=80=E9=99=86=E7=82=B9=E4=B8=8E=E9=A3=9E?= =?UTF-8?q?=E6=9C=BA=E8=BF=9E=E7=BA=BF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ExportQBGISCtrlClass.cpp | 22 ++++++++++++ ExportQBGISCtrlClass.h | 7 +++- GISControlDlg.vcxproj | 1 + GISDlg.cpp | 73 +++++++++++++++++++++++++++++----------- GISDlg.h | 9 ++++- 5 files changed, 91 insertions(+), 21 deletions(-) diff --git a/ExportQBGISCtrlClass.cpp b/ExportQBGISCtrlClass.cpp index ac77651..7631ca4 100644 --- a/ExportQBGISCtrlClass.cpp +++ b/ExportQBGISCtrlClass.cpp @@ -414,4 +414,26 @@ extern "C" void WINAPI OnShowTargetPoint(double lon, double lat, int pixelSize) { g_mapShowDlg.OnShowTargetPoint(lon,lat,pixelSize); } +} + +//���ܣ���ʾ������½����ɻ������� +//���룺�ɻ�ID���ɻ���γ�ȣ���ʾ/�����bShowΪfalseʱ��uavLon��uavLat�������ã���ʵ������ +extern "C" void WINAPI ShowLine14Ex(int uavID,double uavLon,double uavLat,bool bShow) +{ + AFX_MANAGE_STATE(AfxGetAppModuleState()); + if (g_bCreateMap) + { + g_mapShowDlg.ShowLine14Ex(uavID,uavLon,uavLat,bShow); + } +} + +//���ܣ�����װ����������½������ +//���룺�ɻ�ID��������½�㾭γ�� +extern "C" void WINAPI SetBindLine14Coordinate(int uavID,double lon,double lat) +{ + AFX_MANAGE_STATE(AfxGetAppModuleState()); + if (g_bCreateMap) + { + g_mapShowDlg.SetBindLine14Coordinate(uavID,lon,lat); + } } \ No newline at end of file diff --git a/ExportQBGISCtrlClass.h b/ExportQBGISCtrlClass.h index 848e684..aff09b1 100644 --- a/ExportQBGISCtrlClass.h +++ b/ExportQBGISCtrlClass.h @@ -111,7 +111,12 @@ extern "C" _declspec(dllexport) void DrawCallBackPoint(const BYTE callbackMode, extern "C" _declspec(dllexport) void OnShowTargetPoint(double lon, double lat, int pixelSize); +//���ܣ���ʾ������½����ɻ������� +//���룺�ɻ�ID���ɻ���γ�ȣ���ʾ/�����bShowΪfalseʱ��uavLon��uavLat�������ã���ʵ������ +extern "C" _declspec(dllexport) void ShowLine14Ex(int uavID,double uavLon,double uavLat,bool bShow); - +//���ܣ�����װ����������½������ +//���룺�ɻ�ID��������½�㾭γ�� +extern "C" _declspec(dllexport) void SetBindLine14Coordinate(int uavID,double lon,double lat); //#endif \ No newline at end of file diff --git a/GISControlDlg.vcxproj b/GISControlDlg.vcxproj index 1c2f784..d874ef7 100644 --- a/GISControlDlg.vcxproj +++ b/GISControlDlg.vcxproj @@ -61,6 +61,7 @@ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Template|Win32'" /> <OutDir Condition="'$(Configuration)|$(Platform)'=='Template|Win32'">..\$(Configuration)\</OutDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='Template|Win32'">$(Configuration)\</IntDir> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">GISControlDlgUAV</TargetName> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Midl> diff --git a/GISDlg.cpp b/GISDlg.cpp index b61cca7..0092985 100644 --- a/GISDlg.cpp +++ b/GISDlg.cpp @@ -953,6 +953,7 @@ void CGISDlg::OnMapZoomOut() m_bLDSetPoint = FALSE; m_bSelectFeatureFlag = false; + } //��ͼ���� @@ -974,7 +975,6 @@ void CGISDlg::OnMapMove() m_bLDSetPoint = FALSE; m_bSelectFeatureFlag = false; - } @@ -4618,22 +4618,14 @@ void CGISDlg::DrawFlyLine(const DrawLineDataStruct lineData) //Label���� CLabels labesPtr; labesPtr = (m_map.GetShapefile(m_ppPlanLineShpLayerIDArr[lineID][0])).GetLabels(); - - //CLabelCategory labelCategory = labesPtr.AddCategory(_T("��ɫ")); - //labelCategory.SetFontColor(/*RGB(255,0,0)*/LineClr[lineID]); - //labelCategory.SetAlignment(1); - //labelCategory.SetFontBold(TRUE); - //labelCategory.SetFontName(LPCTSTR("����")); - //labelCategory.SetFontSize(12); - //labesPtr.SetAvoidCollisions(FALSE); labesPtr.SetFontColor(/*RGB(255,0,0)*/LineClr[lineID]); labesPtr.SetAlignment(1); labesPtr.SetFontBold(true); labesPtr.SetFontName(LPCTSTR("����")); - labesPtr.SetFontSize(16); - labesPtr.put_FontSize2(16); + labesPtr.SetFontSize(12); + labesPtr.put_FontSize2(12); labesPtr.SetFrameVisible(false); - labesPtr.SetAvoidCollisions(FALSE); + labesPtr.SetAvoidCollisions(false); CString strText = _T(""); @@ -4644,7 +4636,7 @@ void CGISDlg::DrawFlyLine(const DrawLineDataStruct lineData) //��ע��Ϣ if ( 14 ==lineData.lineID) { - strText.Format(_T("������½��") /*lineData.lineID, */ /*lineData.pts[i].nPt*/); + strText.Format(_T("��½��") /*lineData.lineID, */ /*lineData.pts[i].nPt*/); } else { @@ -4715,10 +4707,10 @@ void CGISDlg::DrawCopyFlyLine(const DrawLineDataStruct lineData) labesPtr.SetAlignment(1); labesPtr.SetFontBold(true); labesPtr.SetFontName(LPCTSTR("����")); - labesPtr.SetFontSize(16); - labesPtr.put_FontSize2(16); + labesPtr.SetFontSize(12); + labesPtr.put_FontSize2(12); labesPtr.SetFrameVisible(false); - labesPtr.SetAvoidCollisions(FALSE); + labesPtr.SetAvoidCollisions(false); CString strText = _T(""); @@ -4729,7 +4721,7 @@ void CGISDlg::DrawCopyFlyLine(const DrawLineDataStruct lineData) //��ע��Ϣ if ( 14 ==lineData.lineID) { - strText.Format(_T("������½��(%d)") /*lineData.lineID, */ /*lineData.pts[i].nPt*/,lineData.pts[0].nV); + strText.Format(_T("��½��%d") /*lineData.lineID, */ /*lineData.pts[i].nPt*/,lineData.pts[0].nV); } else { @@ -5124,6 +5116,8 @@ void CGISDlg::SetFlyLineShowStatus(const int lineID) OnShowGivenLine(str); if (g_b981AMulti) { + if (lineIndex == 13) return;//������½�� + CString tmp; m_bShowCopyLine = true; for (int i=2;i<=10;++i) @@ -5237,10 +5231,10 @@ void CGISDlg::OnShowGivenLine(const CString strLineFileName) } m_lineFullPathName[lineDataGroup.lineID] = strLineFileName; - if (lineDataGroup.pts[0].nV>1) + if (lineDataGroup.pts[0].nV>0) //���ID�� { //������ĺ��� - ClearDrawedCopyLine(lineDataGroup.lineID-1,lineDataGroup.pts[0].nV); + ClearDrawedCopyLine(lineDataGroup.lineID-1,lineDataGroup.pts[0].nV-1); //��溽�� DrawCopyFlyLine(lineDataGroup); @@ -8738,7 +8732,48 @@ void CGISDlg::OnShowTargetPoint(double lon,double lat,int pixelSize) m_map.Redraw(); } +//��ʾ������½����ɻ������� +void CGISDlg::ShowLine14Ex(int uavID,double uavLon,double uavLat,bool bShow) +{ + if (bShow) + { + //ͼ���Ѵ��ڣ���ɾ�� + auto it = m_TempLine14LayerID.find(uavID); + if (it!=m_TempLine14LayerID.end()) + { + m_map.ClearDrawing((*it).second); + m_TempLine14LayerID.erase(it); + } + //������½������ + auto it1 = m_CoordinateBindLine14.find(uavID); + if (it1==m_CoordinateBindLine14.end()) return; + //�������� + long layer = m_map.NewDrawing(1); + m_map.DrawLineEx(layer,uavLon,uavLat,(*it1).second.x,(*it1).second.y,2,LineClr[13]); + m_TempLine14LayerID[uavID] = layer; + m_map.Redraw2(mapWindow::RedrawMinimal); + } + else + { + //ͼ���Ѵ��ڣ���ɾ�� + auto it = m_TempLine14LayerID.find(uavID); + if (it!=m_TempLine14LayerID.end()) + { + m_map.ClearDrawing((*it).second); + m_map.Redraw2(mapWindow::RedrawMinimal); + m_TempLine14LayerID.erase(it); + } + } +} +//����װ����������½������ +void CGISDlg::SetBindLine14Coordinate(int uavID,double lon,double lat) +{ + Point2D pt; + pt.x = lon; + pt.y = lat; + m_CoordinateBindLine14[uavID] = pt; +} diff --git a/GISDlg.h b/GISDlg.h index 88b42d5..f44ea72 100644 --- a/GISDlg.h +++ b/GISDlg.h @@ -247,9 +247,16 @@ public: */ void ZoomToLocation(double lon,double lat); -private: // by Wu + //��ʾ������½����ɻ������� + void ShowLine14Ex(int uavID,double uavLon,double uavLat,bool bShow); + //����װ����������½������ + void SetBindLine14Coordinate(int uavID,double lon,double lat); +private: //map<int,map<long,long>> m_subLineLayerID; //�Ӻ�����ͼ��� //map<int,map<long,long>> m_subLinePtLayerID; //�Ӻ��ߵ�ͼ��� + map<int,long> m_TempLine14LayerID; //�洢������½����ɻ�������ͼ�� + map<int,Point2D> m_CoordinateBindLine14; //�洢��װ����������½�����꣬������ɻ����� + long m_subLineLayerID[20][255]; //�Ӻ�����ͼ��� long m_subLinePtLayerID[20][255]; //�Ӻ��ߵ�ͼ��� bool m_pHaveDrawCopyLineFlag[20][255];