#if !defined(AFX_GISDLG_H__C9D2192D_FC93_4663_863B_24AB8906C0A2__INCLUDED_) #define AFX_GISDLG_H__C9D2192D_FC93_4663_863B_24AB8906C0A2__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // GISDlg.h : header file // ///////////////////////////////////////////////////////////////////////////// // CGISDlg dialog #include "resource.h" #include "MapLayerManage.h" #include "ShowHZDistanceDlg.h" #include "LonLatDlg.h" #include "Globe.h" #include "LineManage.h" #include "LineSectDisAZDlg.h" #include "FlyLineDesign.h" #include "toolbarex.h" #include "GuidePointDataStruct.h" #include "DrawLineStruct.h" #include "LineDesign.h" #include "UAVSelectDlg.h" #include "TargetDlg.h" #include "GISManager.h" #include "DlgLightRegion.h" #include "DlgDemAlt.h" #include "TopologicalAnalysis.h" #include "DlgMarker.h" #include <map> #include <array> #include "MapElevation.h" #include "../Include/8BMapDLL_type.h" #include "SaveZoneDlg.h" #include "circleguidence.h" #include "designsurveylinedlg.h" #include "setmultiroutedlg.h" using namespace B8MapDLL; #define MESSAGE_B8MAP WM_USER+750 #define MESSAGE_DRAWZK WM_USER+751 //����Ŀ������ const UINT MAX_TARGET_NUM = 20000; const UINT MAX_PLANE_NUM_ADS = 100; typedef CMap<LPCTSTR,LPCTSTR,LPCTSTR,LPCTSTR> labelMap; //��ý�嶨ʱ�� #include <mmsystem.h> #include "map.h" #pragma comment(lib,"Winmm.lib") class CGISDlg : public CBCGPDialog { // Construction public: CGISDlg(CWnd* pParent = NULL); // standard constructor ~CGISDlg(); //��ȡ��ͼ�汾�� CString GetMapVersion(); /*******************����<�༭����>����**************************/ map<int,DrawLineDataStruct> m_ShowedLineDataList; //�洢����ʾ�ĺ������� DrawLineDataStruct m_editLineDataGroup; //�༭�������� MapElevation m_mapElevation; //���� int m_highLightLineLayerID; //ѡ�и���ͼ�� int m_tempTerrainPointsLayerID; //���ε�ͼ�� long m_tempshpPointLayerID; //��ʱ��ͼ�� long m_tempshpLineLayerID; //��ʱ��ͼ�� bool m_bSelectFeatureFlag; //ѡ��Ԫ��ģʽ int m_lineSelectedID; //ѡ�еĺ��ߺ� int circlingPointID; //�洢������ID long GLOBAL_X; //�洢��������������� long GLOBAL_Y; //��ȡ�з��յĵ��ε� void GetDangerousTerrainPoints(double pts[][2],int pointNum,long alt,vector<double>& vec_alt,vector<double>& vec_lon,vector<double>& vec_lat); //���Σ�յ��ε� int DrawDangerousTerrainPoints(double pts[][2],int pointNum,long alt); //���Σ�յ��ε� void ClearDangerousTerrainPoints(); // ������ʱ�� void DrawTempLine(double m_Pts[][2],int pointNum); //����ѡ�и���ͼ�� void DrawHighLightLine(const PtStruct *pts, const int ptNum); //�����ʱ�� void ClearTempLine(); //��������� void ClearHighLightLine(); //ת��ΪGrid���� void TransformToXY(double pts[][2],int pointNum,vector<int>& ptsRow,vector<int>& ptsCol); //��ȡ����㼯 void TransformToVectorPoints(DrawLineDataStruct lineDataGroup,vector<double>& lineX,vector<double>& lineY); TopologicalAnalysis topologicalAnalysis; //�������ӵ� void AddPointInLine(int ptPos,double* pt,DrawLineDataStruct& editLineDataGroup); //����ɾ���� bool RemovePointInLine(int ptPos,DrawLineDataStruct& backLineDataGroup); // �Ƿ�ѡ����Ҫ�أ���ѡ�з��غ��߱�ţ�����-1 int IsSelectLine(double* pt); long m_distLabelLayer; //�༭ʱ��ʾ��λ�Ǻ;��� BOOL m_bEditLine; //�༭���պ��� DrawLineDataStruct backLineDataGroup; //���պ������ݼ��� BOOL m_dragFlag; //��ק�ƶ���־ long m_KTPtShpLayerID; //��Ͷ��ͼ��ID //��Ͷ������ƶԻ��� //CDesignKTLineDlg *m_pDesignKTLineDlg; /***************����� By Wu 2023.10.16********/ bool m_bPolylineMeasure; //������־ int m_numPolylineMeasurePts; //�����������ĵ��� double m_posPolylineMeasurePts[512][2]; //��������㼯 bool m_bMeasureDrag; //�Ƿ�������� bool m_bEndMeasure; //�������� //���������������߶�ͼ�� long m_polylineMeasureLineLayerID; //��ע������������ע��ͼ�� long m_polylineMeasureLabelLayerID; //�����������ĵ���ŵı�עͼ�� long m_polylineMeasurePtLayerID[2]; void ClearPloylineMeasure(); //��������� /*******************************************/ /*************************************************************************************/ //��ʾ���ߺ� ����� ��ƫ�����Ϣ 2015.11.20 tagDRAWZK m_DRAWZK; //�����Ƿ��Ѿ����ı�־ bool m_pHaveDrawLineFlag[14]; // ���ܣ����õ�����ʽ��Ϣ���;������Ϣ�� void SetMsgInfo(const HWND hwnd, const UINT msgID); BOOL ReadLine(int iLine,PTLIST *pList); // ���ܣ�����װ��������Ϣ���;������Ϣ�� void SetLoadLineMsgInfo(const HWND hwnd, const UINT msgID); //���ܣ��������˻��ķ��к��㣬���Ƴ����˻��ķ��к��� //���룺���˻��ĵ�ǰ�ľ���lon��γ��lat�������yaw, ���ԣ���Ϊ��λ�� void AddFlyPoint(int uavid,const double lon, const double lat, const double yaw,bool control); void AddFlyPoint_ADS(const int uavNum, const int uavid, const double lon, const double lat, const double yaw, const bool control, const CString strPlaneName); //���ܣ�����GIS����ʾ���� void SetGISWindowArea(const CRect gisArea); //���ܣ���ʾGIS�Ի��� void ShowDlg(const CRect rc, CWnd* pParent); //���ܣ�����Ŀ��㣬�ڵ�ͼ��ʾ�������� //���룺Ŀ����ptID������lon��γ��lat void AddTargetPoint(const int ptID, const double lon, const double lat); //���ܣ�ɾ������ID�ŵ�Ŀ��� void DeleteTarget(const int ptID); //���ܣ�ɾ������Ŀ��� void DeleteAllTargets(); //���ܣ��ڵ�ͼ��ʾ������װ���ķ��к������� //���룺���������弯��linePtArray�����ߵĺ������ptNum //˵������ͼ��ʾ���Ѿ�����˸ú��ߣ��������棬���±�溽�� void DrawBindingLine(const PtStruct *linePtArray, const int ptNum); //���ܣ����õ���վλ�� //���룺����lon��γ��lat���߶�alt void SetGCSPosition(const double lon, const double lat, const double alt); //���ܣ���浼����λ�� //���룺����������guideMode��1Ϊ��������1,2Ϊ��������2��������lon��γ��lat void DrawGuidePoint(const BYTE guideMode, const double lon, const double lat); //���ܣ���ʾ���� //���룺�����ļ�����strLineFileName void OnShowGivenLine(const CString strLineFileName); //���ܣ������յ�λ�� //���룺����������callbackMode��1Ϊ���յ�1��2Ϊ���յ�2��������lon��γ��lat void DrawCallBackPoint(const BYTE callbackMode, const double lon, const double lat); //���ܣ�����shpfile��ͼ���淽������UAV void AddUAVPoints2Polygon(const long shpLayerID); //���ܣ�ȡ����ͼ�����ĵ����� void OnRemoveGuidePtDraw(); //// void MouseWheel(short zDelta); void SetRouteLine(int iLine ,PTLIST *pList); //���ܣ����½�����ʾ���� //���룺��ֵ�� void UpdateDataInfo(int index,const char* key,double value); //���ܣ�������ݲ˵��뺽����ʾ��صIJ��� // 1)�����Ѿ���ע�������ʾ // 2)����δ��ע��������ʾ //���룺���߱��lineID void SetFlyLineShowStatus(const int lineID); // Dialog Data //{{AFX_DATA(CGISDlg) enum { IDD = IDD_DIALOG1 }; // NOTE: the ClassWizard will add data members here //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CGISDlg) /* brief:�������ͼ���ߵ�ͼ���� */ void AddTianDiTuService(); /* brief:�������ͼ���ߵ�ͼ���� */ void LoadTianDiTuService(); /* brief:���ŵ�Ŀ��λ�� param: lon���ȣ��ȣ� param: latγ�ȣ��ȣ� */ void ZoomToLocation(double lon,double lat); //��ʾ������½����ɻ������� 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]; //ͼ���Ƿ��ѻ��� int m_line14FlyID; //������½��ɻ�ID bool m_bShowCopyLine; map<int,CString> m_lineFullPathName; // void ShowModifyPointDlg(int selectedPointID=0); //�༭����ʱ,��ʾ�������öԻ��� void ShowEditSaveDlg(); //��ʾ����༭�Ի��� void EndPolylineMessure(); //�������� //���ƽ����������� long noFlyZoneLayersID[5]; //������ long restrictedZoneLayersID[5]; //���� long m_tempZoneLayerID; bool bDrawRestrictedZone; bool bShowZone; double firstZonePoint[2]; //���������� void DrawRestrictedZone(long& layerID,double* xPoints,double* yPoints,int nPoints,int type); //��������� void ClearZoneLayer(long& zoneID); //����������� void ComputeRectanglePoints(double* point1,double* point2,double* xPoints,double* yPoints); //��ʾ����������Ի��� void ShowSaveZoneDlg(double* xPoints,double* yPoints); void arrayDouble2Variant(double *pArray,int iDimlength,VARIANT &vaArray); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CGISDlg) afx_msg void OnMouseMove(UINT nFlags, CPoint point); // afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); afx_msg void OnAddpoint(); afx_msg void OnEnddesign(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: //��ͼ�������� CMap1 m_map; //�滮���߱���ID�� int m_drawPlanFlyLine; //���յ��ĺ������ long int m_uavFlyPoints; //ͼ������� CMapLayerManage* m_Layer; //��γ����ʾ�� CLonLatDlg *m_pLonLatDlg; //��γ�ȶԻ�����ʾ��ʶ bool m_bHaveShowLonLatDlg; //�º�����ƶԻ�����ʾ��ʶ bool m_bHaveShowLineDesign; //2��֮���ˮƽ������ʾ�Ի������ CShowHZDistanceDlg *m_pHZDistanceDlg; //2��֮���ˮƽ���������ʾ�ı�ʶ bool m_bHaveShowDistanceDlg; //�Ƿ��Ѿ������˵�ͼ bool m_bHaveAddMap; //�������ͼ��ID long m_flyTrackLayerID[255]; //UAV�������ͼ��ID long m_UAVFlyTrackLayerID[255]; long m_UAVFlyTrackLayerID_ADS[MAX_PLANE_NUM_ADS]; //�Ƿ��Ѿ���������˻��ķ��й켣 bool m_bFirstDrawUAVTrack[255]; bool m_bFirstDrawUAVTrack_ADS[MAX_PLANE_NUM_ADS]; //��ͼ��ʾ�����ȡ��߶ȵ��� double m_onePerWidth; double m_onePerHeight; //��ͼ��ʾ�����ȡ��߶� double m_mapAreaHalfWidth; double m_mapAreaHalfHeight; //�������״̬ bool m_bLineDesign; //GIS��ʾ���� CRect m_rcGISArea; //�Ի�����ʾ���� CRect m_rcDialogArea; //������ double m_ppUavPtArray[18][2]; double m_ppUavPtArray_ADS[18][2]; CPoint m_ptPlane[18]; CPoint m_ptPlane_ADS[18]; //���������ĺ������ int m_ptNum; //��ͼ��ʾ�������Ͻ�X���� int m_leftTopX; //��ͼ��ʾ�������Ͻ�Y���� int m_leftTopY; //Ŀ����SHPͼ��ID�� int m_targetPtShapeID; //�Ƿ��Ѿ�������SHPĿ���עͼ�� bool m_bHaveCreateTargetShp; //��עƫ���� int m_labelWarpValue; //�����ӵı���Ŀ������ int m_targetPointNum; //�ܹ���Ŀ������ int m_totalPointNum; //Ŀ�����ͼ���ID�� long m_targetDrawLayerID; //�뺽�������صı��� int m_lineMaxPointNum; //һ�������ܵĺ������ PtStruct *m_pDesignLineStruct; //�������� int m_designLinePointNum; //������� int m_iPtSel;//���߱༭ʱѡ�� BOOL m_bPtDel;//�Ƿ�ɾ�� BOOL m_bSetPointModel; //�Ƿ����õ�״̬ BOOL m_bEndSetPoint; //������ƺ��� BOOL m_bPtEdit;//�༭���� BOOL m_bLDSetPoint; //���߱༭ʱ�����õ�״̬ 2016.01.05 //��ǰ��Ƶĺ������� PtStruct m_curDesignPoint; //���߱��ͼ���ID�� long m_designLineLayerID; long m_designLineLayerID2; long m_canvasLayerID; //�Ƿ��Ѿ������µĺ��� bool m_bAddNewPoint; //��ʱ���ͼ�� int m_tempLayerID; //��ʶ�Ƿ�����ʱͼ���Ͻ��б�ע bool m_beTemLayerDrawing; //////////////////�뺽����ʾ��ص�������///////////////////// DrawLineDataStruct m_pFlyLines[14]; //���к��������� 5��14 int m_totalFlyLines; //�ܵķ��к����� int m_flyLineNum; //���к����� //���߹����� CLineManage m_lineManage; //���к��߱�ע�� long m_flyLinesLayerID; //�Ƿ��Ѿ����������˻�����Shp��ͼ�� bool m_bHaveCreateUAVShpLayer; //���˻�����Shp��ͼ��ID long m_uavShapileLayerID; //���߱��ͼ���Shpͼ��ID���飬ÿ�����߾���2�����ͼ�㣺1��ͼ��Ϊ���㡢��һ��ͼ��Ϊ���� long m_ppPlanLineShpLayerIDArr[14][2]; //��ʾ�������ʱ�ĺ���������Ϣ CLineSectDisAZDlg *m_pLineSectDlg; //�ɻ�ѡ�� /*UAVSelectDlg *m_pUavSelDlg1; UAVSelectDlg *m_pUavSelDlg2; UAVSelectDlg *m_pUavSelDlg3;*/ //��һ�������Ƿ��Ѿ���� bool m_bDesignFirstPoint; //������ƶԻ��� CFlyLineDesign *m_pFlyLineDesign; //������ƶԻ��� CLineDesign *m_pLineDesign; //��ͼ��ʾ������Ƶļ��δ�С CRect m_rcDesignGISWindow; ///////////////////////��������������////////////////////////// CImageList m_ImageList; CToolBarCtrl m_ToolBar; CRect m_rcgisSmallArea; //GIS��С���� bool m_bShowToolBar; //�Ƿ���ʾ������ ///////////////////////��������������////////////////////////// //���������ݽṹ�� GuidePointData m_guidePtInfo; //����վλ�õ�ʸ��ͼ�� long m_gcsPtShpLayerID; //������λ�õ�ʸ��ͼ�� long m_guidePtShpLayerID; // ���ʹ�����Ϣ HWND m_MsgHwnd; UINT m_MsgID; //������ʽ��ϢID UINT m_LineLoadMsgID; //װ������ //�ص����� struMapOut m_struMapOut; //��ǰ���༭�ĺ������� PtStruct m_curEditLinePoint; //�����Ƿ�����ƶ� //bool m_bEnablePointMove; //Ŀ���ʸ��ͼ��ID�� //long m_pTargetShapfileID; //�������ĸ߶� int m_toolbarHeight; //������ȫ��Ļ�е�GIS��ʾ���� CRect m_gisAreaInScreen; //�Ƿ�����Զ����εı�ʶ bool m_bAutoMove; //���յ�ʸ��ͼ��ID�� long m_pCallBackShapfileID[255]; //������ģʽ int m_guidePointMode; bool m_bGuideMode;//��������ģʽ long m_CircleGuideLayer; //��������ͼ�� int m_drawTrackPtNum[255]; //�º�����Ƶĺ���������� 2016.01.06 int m_MaxNumofLinePt; int m_NowNumLineDesign; //��ǰ����ĸ��� // tmpPT *m_pNewDesignLineStruct; //�º������� // tmpPT m_CurNewDesignPt; //��ǰ��Ƶĺ������� PtStruct *m_pNewDesignLineStruct; //�º������� PtStruct m_CurNewDesignPt; //��ǰ��Ƶĺ������� struInfoData m_infoData; TargetPt m_targets[255]; int m_targetSelID; bool m_bSelectDropPoint; //�ر��Ի����Ƿ���ѡ�� CDlgDemAlt m_DlgDemAlt; //����̷߳����Ի��� private: CTargetDlg *m_pTargetDlg; private: virtual BOOL OnInitDialog(); afx_msg void OnAddMapData(); //���ص�ͼ���� afx_msg void OnAddRasterImage(); //����դ��Ӱ������ afx_msg void OnAddFlyLineData(); //���ص������� afx_msg void OnMapSelect(); //��ͼѡ�� afx_msg void OnMapZoomIn(); //��ͼ�Ŵ� afx_msg void OnMapZoomOut(); //��ͼ��С afx_msg void OnMapMove(); //��ͼ���� afx_msg void OnMapFullScreen(); //��ͼȫ����ʾ afx_msg void OnSurvey(); //�������� afx_msg void OnEraseTrack(); //������� void EraseTrack(int uavid); //������� afx_msg void OnRemoveAllLayers(); //�������ͼ�� afx_msg void OnLayerManage(); //ͼ����� afx_msg void OnShowLonLatInfo(); //��ʾ��γ����Ϣ afx_msg void OnRefreshInfo(); //ˢ����ʾ afx_msg void OnPrint(); //��ӡ��� afx_msg void OnShowCtrlMenu(); //��ʾ���߲˵� afx_msg void OnMenuLinePtCtrlShow(); //��ʾ���Բ˵� afx_msg void OnZhangCW(); afx_msg BOOL OnToolTipsNotify(UINT id,NMHDR* pNMHDR,LRESULT* pResult); //��ť������ʾ afx_msg void OnDesignLine(); //Design line private: void Openlocalfile(CString file); CString GetFileType(CString file); CString GetFileName(CString file); void OnShowRMenu(); //��ʾ�Ҽ��˵� //���ܣ��Զ����� void AutomaticMoveMap(double lon, double lat); //���ܣ�����ͼ�����ʾ������ LRESULT OnSetLayerStatus(WPARAM wParam, LPARAM lParam); //���ܣ��ر���ʾ���ȡ�γ�ȵ��������� LRESULT OnCloseLonLatDialog(WPARAM wParam, LPARAM lParam); //���ܣ��ر���ʾ2��֮��ľ�γ��������������� LRESULT OnCloseShowDistanceDialog(WPARAM wParam, LPARAM lParam); //���ܣ��������ڱ�����˻���18�������� void CalculateUAVPolygonCoordinate(const double lon, const double lat, const double yaw); void CalculateUAVPolygonCoordinate_ADS(const double dX, const double dY, const double yaw); //���ܣ���ʸ��ͼ���ж�̬�������˻� //���룺����lon��γ��lat,�����yaw //˵��������ר�����ڻ������˻���ʸ����ͼ�㣬ÿ����ɾ���ϴα���Shp�������±�� void DrawUAV( int uavid,const double lon, const double lat, const double yaw,bool control); void DrawUAV_ADS(const int uavNum, const int uavid, const double lon, const double lat, const double yaw, const bool control, const CString strPlaneName); //���ܣ����յ�������ƶԻ����˳���Ϣ�����д��� LRESULT OnCloseLineDesignDialog(WPARAM wParam, LPARAM lParam); //���ܣ�����Ŀ�������λ�ü���Ŀ���ű�עλ�� //���룺Ŀ���λ�þ��ȡ�targetLon��γ�ȡ�targetLat //�����Ŀ����עλ�þ��ȡ�labelLon��γ�ȡ�labelLat void TargetPos2LabelPos(double &labelLon, double &labelLat, const double targetLon, const double targetLat); //���ܣ��ڵ�ͼ��ʾ�����Ŀ��� //���룺Ŀ���������targetInfo // ���ͼ��ID��drawLayerID //��������ͼ��ID��drawLayerID void DrawTarget(long &drawLayerID, const PtStruct targetInfo); //�����������Ŀ������� void OnEraseAllTargets(); /*************************************by wu 2023.10.10****************************************************/ //���ܣ���ע��Ͷ�� LRESULT OnDrawKTPoint(WPARAM wParam, LPARAM lParam); //���ܣ������Ͷ�� LRESULT OnClearKTPoint(WPARAM wParam, LPARAM lParam); //���ܣ���ʾ��Ͷ���� LRESULT OnShowKTLine(WPARAM wParam, LPARAM lParam); //���ܣ���ʾ/�رտ�Ͷ���� LRESULT OnShowKTLine6(WPARAM wParam, LPARAM lParam); //���ܣ�װ����Ͷ���� LRESULT OnBindKTLine(WPARAM wParam, LPARAM lParam); //���ܣ�װ��Ӧ���� LRESULT OnBindEPPoint(WPARAM wParam, LPARAM lParam); /*********************************************************************************************************/ //���ܣ����Ӻ��㣬�����ͼ��ʾ�����к����ע LRESULT OnAddLinePoint(WPARAM wParam, LPARAM lParam); //���ܣ��༭���㣬�����ͼ��ʾ�����к����ע LRESULT OnEditLinePoint(WPARAM wParam, LPARAM lParam); //���ܣ�ɾ�����㣬�����ͼ��ʾ�����к����ע LRESULT OnDeleteLinePoint(WPARAM wParam, LPARAM lParam); //���ܣ����溽�ߣ������ͼ��ʾ�����к����ע LRESULT OnSaveLinePoints(WPARAM wParam, LPARAM lParam); //2016.02.19 // //���ܣ�������ʾ���ߺš�����š���ƫ�����Ϣ // LRESULT DRAW_ZK(WPARAM wParam, LPARAM lParam); //���ܣ�������õĺ������ݣ��������㼰���ע������ void DrawDesignLineData(); //���ܣ�ɾ��������Ƶ����ݣ������������ݺͺ��߱������ void RemoveDesignLineData(); //���ܣ�����������ʱ�������� void ClearDrawingInLineDesign(); //���ܣ���shpfileͼ�������Ӻ������� //���룺ʸ��ͼ��ID��shpLayerID��ʸ��ͼ������shpType��0Ϊ��ͼ�㣻1Ϊ��ͼ�㣻2Ϊ��ͼ�㣩 // �������ݼ���pts���������ptNum void AddPoints2Shapfile(const long shpLayerID, const int shpType, const PtStruct *pts, const int ptNum); //���ܣ������յ�shpfileͼ�� //���룺ʸ��ͼ������shpType��0Ϊ����ͼ�㣻1Ϊ��ͼ�㣻2Ϊ��ͼ�㣩 //���룺������ɫdrawColor //�����ʸ��ͼ��ID��shpLayerID�� void CreateEmptyShapfile(long &shpLayerID, const int shpType, const unsigned long drawColor); //���ܣ���shpfileͼ��������1���������� //���룺ʸ��ͼ��ID��shpLayerID��shp����shpType // �������ݣ����ȡ�lon; γ�ȡ�lat void AddOnePoint2Shapfile(const long shpLayerID, const int shpType, const double lon, const double lat); //���ܣ����ݵ�ͼ�ؼ�����ʾ�ֱ����ƶ���ͼ�ؼ� //˵����������ʾ�ֱ��ʺ���Ʒֱ���֮��ļ��ι�ϵ //���룺�ƶ���ʾ������moveToArea void MoveGISShowWindow(const CRect moveToArea); //���ܣ��������������� void CreateFloatToolBar(); BOOL OnToolTipText(UINT,NMHDR* pNMHDR,LRESULT* pResult); //���ܣ���shpfile��ͼ�������Ӻ������� //���룺ʸ��ͼ��ID��shpLayerID // �������ݼ���pts���������ptNum void AddPoints2PointShapfile(const long shpLayerID, const PtStruct *pts, const int ptNum); //���ܣ���shpfile��ͼ�������Ӻ������� //���룺ʸ��ͼ��ID��shpLayerID // �������ݼ���pts���������ptNum void AddPoints2LineShapfile(const long shpLayerID, const PtStruct *pts, const int ptNum); //���ܣ�������ʽһ�����������͵��������� void OnGuideMode1(); //���ܣ�������ʽ�������������͵��������� void OnGuideMode2(); //���ܣ���ʾ1�ź��� void OnShowLine1(); //���ܣ���ʾ2�ź��� void OnShowLine2(); //���ܣ���ʾ3�ź��� void OnShowLine3(); //���ܣ���ʾ4�ź��� void OnShowLine4(); //���ܣ���ʾ5�ź��� void OnShowLine5(); //���ܣ������к��� //���룺��������lineData void DrawFlyLine(const DrawLineDataStruct lineData); //���ܣ������к���(��������) //���룺��������lineData void DrawCopyFlyLine(const DrawLineDataStruct lineData); afx_msg void OnUpdateLineDisplay1(CCmdUI* pCmdUI); afx_msg void OnUpdateLineDisplay2(CCmdUI* pCmdUI); afx_msg void OnUpdateLineDisplay3(CCmdUI* pCmdUI); afx_msg void OnUpdateLineDisplay4(CCmdUI* pCmdUI); afx_msg void OnUpdateLineDisplay5(CCmdUI* pCmdUI); afx_msg void OnData(); //test //���ܣ�����Ѿ����ĺ��� //���룺���߱��lineID����0��ʼ���� void ClearDrawedLine(const int lineID); //���ܣ�����Ѿ����ĺ���(����Ӻ���) //���룺���߱��lineID����0��ʼ���� void ClearDrawedCopyLine(const int lineID,const int sublineID); //���ܣ������ͼ���ע��Ϣ //���룺��ͼ��ID��layerID void ClearPointShape(long layerID); //���ܣ����ڵ�ʸ��ͼ����Ŀ��� //���룺��ͼ������drawLayerID // �����꣬����lon, γ��lat // ������strPtName // �����ɫstrColor // ���������ɫ��ֵfontColor void AddPointShapeLayer(long &drawLayerID, const double lon, const double lat, const CString strPtName, const CString strColor, unsigned long fontColor); //���ܣ��������ʱ����麽�ߵ���ʾ״̬ LRESULT OnCheckFlyLineShowStatus(WPARAM wParam, LPARAM lParam); //���ܣ��ж�����Ƿ�ѡ�к��� //���룺��������curpoint���������������x��y //����ֵ��true�������ѡ�к��� // false�������δѡ�к��� bool BeMouseClickedLinePoint(const PtStruct curpoint, const long x, const long y); //���ܣ��Ƿ�����Զ����� void OnAutoMove(); void OnUpdateAutoMov( CCmdUI *pCmdUI ); void OnUpdateGuideMode1( CCmdUI *pCmdUI); void OnUpdateGuideMode2( CCmdUI *pCmdUI); int GetPtSel(int x,int y);//��ȡ���ѡȡ�ĵ�� int GetPtSel(PtStruct* m_pLinePtStruct,int m_PointNum,int x,int y); //���� by Wu 2023.09.14 void DrawLineDesign(); void DrawCanvas(); /*! brief:���ñ�ע�����ԣ��ڴ���ͼ��ʱ�������ڸ�ͼ���עʱʹ�� param: shapeIDͼ��ID��, fontSize��ע�����С��colorName��ɫ����,fontColor��ע������ɫ param: XOffset/YOffset��עλ��ƫ���� return: void */ void SetLabelCategory(const long& shapeID, int fontSize = 12, unsigned long fontColor = RGB(255,0,0), unsigned long frameBackColor = RGB(0,0,0), double XOffset = 0, double YOffset = 0); void ReadTargetIni(bool bDraw); private: DECLARE_EVENTSINK_MAP() void MouseDownMap1(short Button, short Shift, long x, long y); void MouseMoveMap1(short Button, short Shift, long x, long y); void MouseUpMap1(short Button, short Shift, long x, long y); void MouseDblClickMap1(); afx_msg void OnFlyLineDesign(); public: afx_msg void OnClearpoint(); afx_msg void OnEditpoint(); afx_msg void OnEditProper(); afx_msg void OnDelpoint(); afx_msg void OnEditLine(); // -----by Wu 2023.09.14 //afx_msg void OnBindline1(); afx_msg void OnBindline2(); afx_msg void OnLoadMyline1(); afx_msg void OnBindline3(); afx_msg void OnBindline4(); afx_msg void OnBindline5(); afx_msg void OnLayermng(); afx_msg void OnAddgtarget(); afx_msg void ShowModifyPointDlg(); // afx_msg void OnMouseHWheel(UINT nFlags, short zDelta, CPoint pt); afx_msg void OnNlinedesign(); afx_msg void OnUpdateNlinedesign(CCmdUI *pCmdUI); afx_msg void OnShowBackLine(); afx_msg void OnUpdateShowBackLine(CCmdUI *pCmdUI); afx_msg void OnShowHs11(); afx_msg void OnUpdateShowHs11(CCmdUI *pCmdUI); afx_msg void OnBindHs11(); afx_msg void OnShowTc12(); afx_msg void OnBindTc12(); afx_msg void OnUpdateShowTc12(CCmdUI *pCmdUI); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnBindBackLine(); afx_msg void OnMove(int x, int y); virtual BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult); protected: afx_msg LRESULT OnSelUav(WPARAM wParam, LPARAM lParam); public: afx_msg void OnAddTarget(); protected: afx_msg LRESULT OnDrawTarget(WPARAM wParam, LPARAM lParam); public: afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); afx_msg void OnTargetDelete(); afx_msg LRESULT OnSendSelectTarget(WPARAM wParam, LPARAM lParam); //�ڵ�ͼ��ѡ�� afx_msg LRESULT OnSendCloseDemAlt(WPARAM wParam, LPARAM lParam); //�ڵ�ͼ��ѡ�� afx_msg LRESULT OnShowPointInMap(WPARAM wParam, LPARAM lParam); //��ʾ�������ĵ���վλ�� afx_msg LRESULT OnShowPointVisible(WPARAM wParam, LPARAM lParam); //��ʾ�������� afx_msg LRESULT OnShowPointNotVisible(WPARAM wParam, LPARAM lParam); //��ʾ���������� afx_msg LRESULT OnSendClearShape(WPARAM wParam, LPARAM lParam); //�����������Ͳ��������� afx_msg LRESULT OnShowAreaVisible(WPARAM wParam, LPARAM lParam); //��ʾʵʱ�������� afx_msg LRESULT OnShowAreaNotVisible(WPARAM wParam, LPARAM lParam); //��ʾʵʱ���������� afx_msg LRESULT OnShowClearArea(WPARAM wParam, LPARAM lParam); //���ʵʱ���� afx_msg LRESULT OnDelLineLayer(WPARAM wParam, LPARAM lParam); //ɾ��ͨ�ӵȸ���ͼ�� afx_msg LRESULT OnAddLineLayer(WPARAM wParam, LPARAM lParam); //���ӵ㵽ͨ�ӵȸ���ͼ�� afx_msg LRESULT OnSendRegionToGis(WPARAM wParam, LPARAM lParam); //�����������GIS�Ի������Ϣ��Ӧ���� afx_msg LRESULT OnDrawLinePoint(WPARAM wParam, LPARAM lParam); //��溽���ϵĵ� afx_msg LRESULT OnShowCrashArea(WPARAM wParam, LPARAM lParam); //��ʾʵʱ��ײ������� afx_msg LRESULT OnSendDrawFight(WPARAM wParam, LPARAM lParam); //�������÷�Χ afx_msg LRESULT OnSendDrawDemRegion(WPARAM wParam, LPARAM lParam); //���Ƹ߳����� afx_msg LRESULT OnZoomToLocation(WPARAM wParam,LPARAM lParam); //���ߵ�ͼ��λ GISManager* m_gisManager; CDlgLightRegion m_dlgLightRegion; afx_msg void OnMenuLightRegion(); //�Ƿ�ѡ�б��߳����� bool m_bPlotDemArea; //���ܣ����ڵ�ʸ��ͼ�������ֱ�ע //���룺��ͼ������drawLayerID // �����꣬����lon, γ��lat // ������strPtName // �����ɫstrColor // ���������ɫ��ֵfontColor void AddTextToPointShapeLayer(long &drawLayerID, const double lon, const double lat, const CString strPtName, const CString strColor, unsigned long fontColor); //���ܣ���ʾ���������߶εľ���ͷ�λ void DrawLineLabel(long &drawLayerID, const double ptLon1, const double ptLat1, const double ptLon2, const double ptLat2); //���ܣ���ʾ���������߶εľ���ͷ�λ void DrawDistLabelEx(long drawLayerID, const double ptLon1, const double ptLat1, const double ptLon2, const double ptLat2,int pos=1); //����:��ʾ����֮��ľ���ͷ�λ void DrawDistLabel(long drawLayerID,const double pts[][2], const int ptNum,int pos=1); void DrawDistLebel(long drawLayerID,const PtStruct *pts, const int ptNum); afx_msg void OnMenuEntryPoint(); afx_msg void OnMenuPlotdemArea(); //��ǵ�Ի��� CDlgMarker m_dlgMarker; //���ܣ��ı�CursorMode afx_msg LRESULT OnSetMapCursorMode(WPARAM wParam, LPARAM lParam); //���ܣ���ʾ�����ر�ǵ� afx_msg LRESULT OnDrawMarker(WPARAM wParam, LPARAM lParam); //�������վ��� afx_msg void OnMenuClearGCS(); //�Ƿ���ʾADS�ɻ���Ϣ bool m_bEnableShowADSB; afx_msg void OnMenuADSB(); bool m_bWithin100km_ADS[MAX_PLANE_NUM_ADS]; double m_dLon_ADS[MAX_PLANE_NUM_ADS]; double m_dLat_ADS[MAX_PLANE_NUM_ADS]; double m_dYaw_ADS[MAX_PLANE_NUM_ADS]; CString m_strPlaneName_ADS[MAX_PLANE_NUM_ADS]; CString m_strColor_ADS[MAX_PLANE_NUM_ADS]; long m_fontColor_ADS[MAX_PLANE_NUM_ADS]; int m_iCurrentADSid; int m_iTotalADSnum; UINT TimerID_Draw; //��ʱ�������Ʒɻ� //���ܣ���ʱ�������˻� afx_msg LRESULT OnTimerDrawUAV(WPARAM wParam, LPARAM lParam); afx_msg void OnShowLine6(); afx_msg void OnUpdateShowLine6(CCmdUI *pCmdUI); afx_msg void OnShowLine7(); afx_msg void OnUpdateShowLine7(CCmdUI *pCmdUI); afx_msg void OnShowLine8(); afx_msg void OnUpdateShowLine8(CCmdUI *pCmdUI); afx_msg void OnBindline6(); afx_msg void OnBindline7(); afx_msg void OnBindline8(); afx_msg void OnShowLine9(); afx_msg void OnUpdateShowLine9(CCmdUI *pCmdUI); afx_msg void OnShowLine10(); afx_msg void OnUpdateShowLine10(CCmdUI *pCmdUI); afx_msg void OnBindline9(); afx_msg void OnBindline10(); afx_msg void OnShowLine14(); afx_msg void OnUpdateShowLine14(CCmdUI *pCmdUI); /****************************�������˵��¼�************************************/ void OnDesignZone(); //��������� void OnImportZone(); //�����������ļ� //��ʾ����1-5 void OnShowRestrictedZone1(); void OnShowRestrictedZone2(); void OnShowRestrictedZone3(); void OnShowRestrictedZone4(); void OnShowRestrictedZone5(); //����������״̬ void SetZoneState(long& zoneLayerID); //�����������˵���ѡ void SetMenuZoneCheck(CMenu& menu); //��ʾ������ void OnShowNoFlyZone1(); void OnShowNoFlyZone2(); void OnShowNoFlyZone3(); void OnShowNoFlyZone4(); void OnShowNoFlyZone5(); //װ�������� void OnBindZone(); /****************************��������************************************/ //CCircleGuidence circleGuidenceDlg; //��ʾ��������װ���Ի��� void OnShowCircleGuidenceDlg(); /******************************���⺽��*******************************/ DesignSurveyLineDlg* designSurveyLineDlg; //��������ͼ�� long surveyRegionLayerID; long tmpSurveyRegionLayerID; long tmpSurveyLineLayerID; //����� vector<double> surveyRegionLons; vector<double> surveyRegionLats; //��ʾ�������� afx_msg LRESULT OnShowSurveyRegion(WPARAM wParam,LPARAM lParam); //��ʾ��溽�� afx_msg LRESULT OnShowSurveyLine(WPARAM wParam,LPARAM lParam); //װ����溽�� afx_msg LRESULT OnBindSurveyLine(WPARAM wParam,LPARAM lParam); //�����ʱͼ�� afx_msg LRESULT OnClearTmpSurveyFeature(WPARAM wParam,LPARAM lParam); void ShowSurveyRegion(long& layerID,vector<double>& xPoints,vector<double>& yPoints); //��ʾ���⺽�� void ShowPolyline(long& layerID,vector<double>& xPoints,vector<double>& yPoints); //���ܣ���ʾ��溽����ƶԻ��� void OnShowDesignSurveyLineDlg(); /****************************�������һ������************************************/ void GetMultiRouteLine(double azimuth,double lineInterval,int lineNumber,PtStruct* lineStruct,int nLinePts,vector<vector<PtStruct>>& resultLines,int hPtOffset=0); void SaveMultiRouteLine(CString pathDirName,double heightInterval,vector<CString>& savePathNameArr,const vector<vector<PtStruct>>& resultLines); void ShowMultiRouteSetting(); /****************************����Ŀ���ٲ���************************************/ long testLayer; void OnShowTargetPoint(double lon,double lat,int pixelSize); }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_GISDLG_H__C9D2192D_FC93_4663_863B_24AB8906C0A2__INCLUDED_)