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];