Merge pull request 'dev/cbwu' (#8) from dev/cbwu into master

Reviewed-on: #8
pull/9/head
WuChengbo 2 years ago
commit b8803d2954

1
.gitignore vendored

@ -1,2 +1,3 @@
Release/
Debug/
*.aps

@ -235,7 +235,17 @@ extern "C" void WINAPI SetUAVFlyCoordinate(int uavid,const double lon, const dou
}
}
//功能:定位到目标点
//输入经度lon纬度lat
extern "C" void WINAPI ZoomToLocation(double lon,double lat)
{
AFX_MANAGE_STATE(AfxGetAppModuleState());
if (g_bCreateMap)
{
//标绘目标点
g_mapShowDlg.ZoomToLocation(lon,lat);
}
}
//功能:增加目标点,在地图显示区标绘出来
//输入目标点号ptID经度lon纬度lat

@ -44,7 +44,9 @@ extern "C" _declspec(dllexport) void DeleteGISDlg();
// 航向角yaw以°为单位
extern "C" _declspec(dllexport) void SetUAVFlyCoordinate(const double lon, const double lat, const double yaw);
//功能:定位到目标点
//输入经度lon纬度lat
extern "C" _declspec(dllexport) void ZoomToLocation(double lon,double lat);
//功能:增加目标点,在地图显示区标绘出来
//输入目标点号ptID经度lon纬度lat

Binary file not shown.

@ -34,4 +34,5 @@ EXPORTS
ShowGISDlg @27
GetMouseWheel @28
UpdateDataInfo @29
AddAirPt_ADS @30
AddAirPt_ADS @30
ZoomToLocation @31

@ -537,6 +537,7 @@ BEGIN
MENUITEM "显示三号航线", IDM_SHOW_LINE3
MENUITEM "显示四号航线", IDM_SHOW_LINE4
MENUITEM "显示五号航线", IDM_SHOW_LINE5
MENUITEM "显示空投航线", IDM_SHOW_LINE14
MENUITEM SEPARATOR
MENUITEM "装订一号航线", ID_LOAD_MYLINE1
MENUITEM "装订二号航线", IDM_BINDLINE2
@ -546,11 +547,11 @@ BEGIN
END
POPUP "电子围栏及应急航线"
BEGIN
MENUITEM "回收航线显示", ID_SHOW_PD10
MENUITEM "回收航线显示", ID_SHOW_BACKLINE
MENUITEM "应急航线显示", ID_SHOW_HS11
MENUITEM "电子围栏显示", ID_SHOW_TC12
MENUITEM SEPARATOR
MENUITEM "回收航线装订", ID_32855
MENUITEM "回收航线装订", ID_BIND_BACKLINE
MENUITEM "应急航线装订", ID_BIND_HS11
MENUITEM "电子围栏装订", ID_BIND_TC12
END
@ -560,7 +561,7 @@ BEGIN
MENUITEM "高程分析", ID__MENU_LIGHTREGION
MENUITEM "高程区域", ID_MENU_PLOTDEMAREA
END
MENUITEM "自动漫游", IDM_BINDLINE10
MENUITEM "自动漫游", IDM_AUTO_MOVE
POPUP "标绘管理"
BEGIN
MENUITEM "应答机信息显示", ID_MENU_ADSB

@ -377,6 +377,7 @@
<ClInclude Include="DlgDemAlt.h" />
<ClInclude Include="DlgLightRegion.h" />
<ClInclude Include="DlgMarker.h" />
<ClInclude Include="ExportQBGISCtrlClass.h" />
<ClInclude Include="extents.h" />
<ClInclude Include="field.h" />
<ClInclude Include="FlyLineDesign.h" />

@ -418,5 +418,8 @@
<ClInclude Include="SaveLineEditSetting.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ExportQBGISCtrlClass.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

@ -502,8 +502,8 @@ BEGIN_MESSAGE_MAP(CGISDlg, CBCGPDialog)
// ON_WM_MOUSEHWHEEL()
ON_COMMAND(ID_NLINEDESIGN, &CGISDlg::OnNlinedesign)
ON_UPDATE_COMMAND_UI(ID_NLINEDESIGN, &CGISDlg::OnUpdateNlinedesign)
ON_COMMAND(ID_SHOW_PD10, &CGISDlg::OnShowPd10)
ON_UPDATE_COMMAND_UI(ID_SHOW_PD10, &CGISDlg::OnUpdateShowPd10)
ON_COMMAND(ID_SHOW_BACKLINE, &CGISDlg::OnShowBackLine)
ON_UPDATE_COMMAND_UI(ID_SHOW_BACKLINE, &CGISDlg::OnUpdateShowBackLine)
ON_COMMAND(ID_SHOW_HS11, &CGISDlg::OnShowHs11)
ON_UPDATE_COMMAND_UI(ID_SHOW_HS11, &CGISDlg::OnUpdateShowHs11)
ON_COMMAND(ID_BIND_HS11, &CGISDlg::OnBindHs11)
@ -511,7 +511,7 @@ BEGIN_MESSAGE_MAP(CGISDlg, CBCGPDialog)
ON_COMMAND(ID_BIND_TC12, &CGISDlg::OnBindTc12)
ON_UPDATE_COMMAND_UI(ID_SHOW_TC12, &CGISDlg::OnUpdateShowTc12)
ON_WM_SIZE()
ON_COMMAND(ID_32855, &CGISDlg::On32855)
ON_COMMAND(ID_BIND_BACKLINE, &CGISDlg::OnBindBackLine)
ON_WM_MOVE()
ON_MESSAGE(WM_SEL_UAV, &CGISDlg::OnSelUav)
ON_COMMAND(ID_ADD_TARGET, &CGISDlg::OnAddTarget)
@ -578,6 +578,9 @@ BEGIN_MESSAGE_MAP(CGISDlg, CBCGPDialog)
ON_UPDATE_COMMAND_UI(IDM_SHOW_LINE10, &CGISDlg::OnUpdateShowLine10)
ON_COMMAND(IDM_BINDLINE9, &CGISDlg::OnBindline9)
ON_COMMAND(IDM_BINDLINE10, &CGISDlg::OnBindline10)*/
//空投航线
ON_COMMAND(IDM_SHOW_LINE14, &CGISDlg::OnShowLine14)
ON_UPDATE_COMMAND_UI(IDM_SHOW_LINE14, &CGISDlg::OnUpdateShowLine14)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
@ -905,6 +908,7 @@ void CGISDlg::OnMapMove()
m_bLDSetPoint = FALSE;
m_bSelectFeatureFlag = false;
}
@ -1375,36 +1379,86 @@ void CGISDlg::OnShowRMenu()
}
*/
//봄窟14 쀼澗봄窟
if (m_pHaveDrawLineFlag[13])
if (g_b981ADesktop || g_b981APad)
{
menu.CheckMenuItem( ID_SHOW_PD10, MF_BYCOMMAND | MF_CHECKED );
}
else
{
menu.CheckMenuItem( ID_SHOW_PD10, MF_BYCOMMAND | MF_UNCHECKED );
}
//航线14 回收航线
if (m_pHaveDrawLineFlag[13])
{
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_CHECKED );
}
else
{
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_UNCHECKED );
}
//봄窟11 壇선봄窟
if (m_pHaveDrawLineFlag[10])
{
menu.CheckMenuItem( ID_SHOW_HS11, MF_BYCOMMAND | MF_CHECKED );
}
else
{
menu.CheckMenuItem( ID_SHOW_HS11, MF_BYCOMMAND | MF_UNCHECKED );
}
//航线11 应急航线
if (m_pHaveDrawLineFlag[10])
{
menu.CheckMenuItem( ID_SHOW_HS11, MF_BYCOMMAND | MF_CHECKED );
}
else
{
menu.CheckMenuItem( ID_SHOW_HS11, MF_BYCOMMAND | MF_UNCHECKED );
}
//봄窟12 든綾鍋으
if (m_pHaveDrawLineFlag[11])
{
menu.CheckMenuItem( ID_SHOW_TC12, MF_BYCOMMAND | MF_CHECKED );
//航线12 电子围栏
if (m_pHaveDrawLineFlag[11])
{
menu.CheckMenuItem( ID_SHOW_TC12, MF_BYCOMMAND | MF_CHECKED );
}
else
{
menu.CheckMenuItem( ID_SHOW_TC12, MF_BYCOMMAND | MF_UNCHECKED );
}
}
else
if (g_b98CADesktop)
{
menu.CheckMenuItem( ID_SHOW_TC12, MF_BYCOMMAND | MF_UNCHECKED );
//航线14 回收航线
if (m_pHaveDrawLineFlag[10])
{
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_CHECKED );
}
else
{
menu.CheckMenuItem( ID_SHOW_BACKLINE, MF_BYCOMMAND | MF_UNCHECKED );
}
//航线6 围栏
if (m_pHaveDrawLineFlag[5])
{
//menu.CheckMenuItem( ID_SHOW_WEILAN, MF_BYCOMMAND | MF_CHECKED );
menu.CheckMenuItem( ID_SHOW_TC12, MF_BYCOMMAND | MF_UNCHECKED );
}
else
{
//menu.CheckMenuItem( ID_SHOW_WEILAN, MF_BYCOMMAND | MF_UNCHECKED );
menu.CheckMenuItem( ID_SHOW_TC12, MF_BYCOMMAND | MF_UNCHECKED );
}
//航线7 应急
if (m_pHaveDrawLineFlag[6])
{
//menu.CheckMenuItem( ID_SHOW_LINE_YINGJI, MF_BYCOMMAND | MF_CHECKED );
menu.CheckMenuItem( ID_SHOW_HS11, MF_BYCOMMAND | MF_CHECKED );
}
else
{
//menu.CheckMenuItem( ID_SHOW_LINE_YINGJI, MF_BYCOMMAND | MF_UNCHECKED );
menu.CheckMenuItem( ID_SHOW_HS11, MF_BYCOMMAND | MF_CHECKED );
}
//航线14,空投航线
if (m_pHaveDrawLineFlag[13])
{
menu.CheckMenuItem( IDM_SHOW_LINE14, MF_BYCOMMAND | MF_CHECKED );
}
else
{
menu.CheckMenuItem( IDM_SHOW_LINE14, MF_BYCOMMAND | MF_UNCHECKED );
}
}
if (m_bAutoMove)
{
menu.CheckMenuItem( IDM_AUTO_MOVE, MF_BYCOMMAND | MF_CHECKED );
@ -2102,6 +2156,9 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
return;
}
OnShowRMenu();
/*
//当处于回放模式时,设置、导引操作、航线装订子菜单都先灰色
menu.LoadMenu(IDR_MENU2);
@ -2155,7 +2212,7 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
menu.CheckMenuItem( IDM_SHOW_LINE5, MF_BYCOMMAND | MF_UNCHECKED );
}
/*
//航线6
if (m_pHaveDrawLineFlag[5])
{
@ -2201,7 +2258,7 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
else
{
menu.CheckMenuItem( IDM_SHOW_LINE10, MF_BYCOMMAND | MF_UNCHECKED );
}*/
}
//航线14 回收航线
@ -2281,7 +2338,7 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
//弹出快捷菜单
menu.GetSubMenu( 0 )->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this );
*/
//像素坐标转经纬度坐标
m_map.PixelToProj(x, y, &m_guidePtInfo.guidePtLon, &m_guidePtInfo.guidePtLat);
}
@ -2338,18 +2395,19 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
//高程分析选点
if (g_bDemAnalysising && (Button == 1))
{
g_iDemPointNum++;
//像素坐标转经纬度坐标
double _ptLon = 0.0, _ptLat = 0.0;
m_map.PixelToProj(x, y, &_ptLon, &_ptLat);
g_dDemPtLon[g_iDemPointNum-1] = _ptLon;
g_dDemPtLat[g_iDemPointNum-1] = _ptLat;
return;
CString str;
str.Format(_T("%d"), g_iDemPointNum);
//显示点的序号标注
AddTextToPointShapeLayer(g_lDemPtNumLayerID[g_iDemPointNum-1], _ptLon, _ptLat, str, _T(""), RGB(255,0,0));
@ -2366,6 +2424,7 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
m_DlgDemAlt.ShowWindow(TRUE);
}
}
}
//选择导引点
@ -2745,7 +2804,7 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
AddPointShapeLayer(m_longLabelPlotID,_ptLon, _ptLat, str, _T("红色"), RGB(255,0,0));
}
if (g_bDemAnalysising && g_iDemPointNum>=1)
if (g_bDemAnalysising && g_iDemPointNum>=1 )
{
double lon = 0, lat = 0;
m_map.PixelToProj(x, y, &lon, &lat);
@ -2766,7 +2825,13 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
AddOnePoint2Shapfile(g_lDemAltLayerID[g_iDemPointNum-1], 1, lon, lat);
//显示线段的距离和方位
DrawLineLabel(g_lDemAltDisLayerID[g_iDemPointNum-1], g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1], lon, lat);
/*
if (g_lDemAltDisLayerID[g_iDemPointNum-1]!=-1)
{
m_map.ClearDrawing(g_lDemAltDisLayerID[g_iDemPointNum-1]);
}
g_lDemAltDisLayerID[g_iDemPointNum-1] = m_map.NewDrawing(1);*/
//DrawLineLabel(g_lDemAltDisLayerID[g_iDemPointNum-1], g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1], lon, lat);
}
}
@ -2869,15 +2934,27 @@ void CGISDlg::DrawLineLabel(long &drawLayerID, const double ptLon1, const double
//Label集合
CLabels labesPtr;
labesPtr = (m_map.GetShapefile(drawLayerID)).GetLabels();
//labesPtr = m_map.GetDrawingLabels(drawLayerID);
labesPtr.SetFontColor(RGB(255,255,0));
labesPtr.SetAlignment(1);
labesPtr.SetFontBold(TRUE);
labesPtr.SetFontName(_T("Times New Roman"));
labesPtr.SetFontSize(10);
CLabelCategory labelCategory = labesPtr.AddCategory(_T(""));
//CLabelCategory labelCategory = labesPtr.AddCategory(_T(""));
/*
labelCategory.SetFontColor(RGB(255,255,0));
labelCategory.SetAlignment(1);
labelCategory.SetFontBold(TRUE);
labelCategory.SetFontName(_T("Times New Roman"));
labelCategory.SetFontSize(10);
labelCategory.SetFontSize(10);*/
<<<<<<< HEAD
labesPtr.AddLabel((LPCTSTR)str, textLon, textLat, 0, 0); //4.9版本此处有问题,会导致程序崩溃
=======
//labesPtr.AddLabel(str, textLon, textLat, 0, 0);
>>>>>>> master
}
//重绘
@ -4576,6 +4653,12 @@ void CGISDlg::OnShowLine10()
SetFlyLineShowStatus(10);
}
//功能:显示空投
void CGISDlg::OnShowLine14()
{
SetFlyLineShowStatus(14);
}
//功能:清除已经标绘的航线
//输入航线编号lineID从0开始计数
void CGISDlg::ClearDrawedLine(const int lineID)
@ -4683,6 +4766,11 @@ void CGISDlg::OnUpdateShowLine10(CCmdUI *pCmdUI)
pCmdUI->SetCheck(m_pHaveDrawLineFlag[9]);
}
void CGISDlg::OnUpdateShowLine14(CCmdUI *pCmdUI)
{
pCmdUI->SetCheck(m_pHaveDrawLineFlag[13]);
}
//功能:显示航线
//输入航线文件名称strLineFileName
void CGISDlg::OnShowGivenLine(const CString strLineFileName)
@ -5614,59 +5702,118 @@ BOOL CGISDlg::ReadLine(int iLine,PTLIST *pList)
}
//显示回收航线14
void CGISDlg::OnShowPd10()
void CGISDlg::OnShowBackLine()
{
// TODO: 在此添加命令处理程序代码
SetFlyLineShowStatus(14);
if (g_b981ADesktop || g_b981APad)
{
SetFlyLineShowStatus(14);
}
if (g_b98CADesktop)
{
SetFlyLineShowStatus(11);
}
}
void CGISDlg::OnUpdateShowPd10(CCmdUI *pCmdUI)
void CGISDlg::OnUpdateShowBackLine(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用户界面处理程序代码
pCmdUI->SetCheck(m_pHaveDrawLineFlag[13]);
if (g_b981ADesktop || g_b981APad)
{
pCmdUI->SetCheck(m_pHaveDrawLineFlag[13]);
}
if (g_b98CADesktop)
{
pCmdUI->SetCheck(m_pHaveDrawLineFlag[10]);
}
}
void CGISDlg::OnShowHs11()
{
// TODO: 在此添加命令处理程序代码
SetFlyLineShowStatus(11);
if (g_b981ADesktop || g_b981APad)
{
SetFlyLineShowStatus(11);
}
if (g_b98CADesktop)
{
SetFlyLineShowStatus(7);
}
}
//应急航线 11
void CGISDlg::OnUpdateShowHs11(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用户界面处理程序代码
pCmdUI->SetCheck(m_pHaveDrawLineFlag[10]);
if (g_b981ADesktop || g_b981APad)
{
pCmdUI->SetCheck(m_pHaveDrawLineFlag[10]);
}
if (g_b98CADesktop)
{
pCmdUI->SetCheck(m_pHaveDrawLineFlag[6]);
}
}
void CGISDlg::OnBindHs11()
{
m_struMapOut.cmd=MapCmd_BindLine;
m_struMapOut.ID=11;
if (g_b981ADesktop || g_b981APad)
{
m_struMapOut.ID=11;
}
if (g_b98CADesktop)
{
m_struMapOut.ID=7;
}
::SendMessage(GetParent()->GetSafeHwnd(),MESSAGE_B8MAP,(int)(&m_struMapOut),0);
}
//电子围栏 12
void CGISDlg::OnShowTc12()
{
SetFlyLineShowStatus(12);
if (g_b981ADesktop || g_b981APad)
{
SetFlyLineShowStatus(12);
}
if (g_b98CADesktop)
{
SetFlyLineShowStatus(6);
}
}
void CGISDlg::OnBindTc12()
{
m_struMapOut.cmd=MapCmd_BindLine;
m_struMapOut.ID=12;
if (g_b981ADesktop || g_b981APad)
{
m_struMapOut.ID=12;
}
if (g_b98CADesktop)
{
m_struMapOut.ID=6;
}
::SendMessage(GetParent()->GetSafeHwnd(),MESSAGE_B8MAP,(int)(&m_struMapOut),0);
}
void CGISDlg::OnUpdateShowTc12(CCmdUI *pCmdUI)
{
if (g_b981ADesktop || g_b981APad)
{
pCmdUI->SetCheck(m_pHaveDrawLineFlag[11]);
}
if (g_b98CADesktop)
{
pCmdUI->SetCheck(m_pHaveDrawLineFlag[5]);
}
}
void CGISDlg::OnSize(UINT nType, int cx, int cy)
@ -5685,10 +5832,17 @@ void CGISDlg::OnSize(UINT nType, int cx, int cy)
}
void CGISDlg::On32855()
void CGISDlg::OnBindBackLine()
{
m_struMapOut.cmd=MapCmd_BindLine;
m_struMapOut.ID=14;
if (g_b981ADesktop || g_b981APad)
{
m_struMapOut.ID=14;
}
if (g_b98CADesktop)
{
m_struMapOut.ID=11;
}
::SendMessage(GetParent()->GetSafeHwnd(),MESSAGE_B8MAP,(int)(&m_struMapOut),0);
}

@ -781,8 +781,8 @@ public:
// afx_msg void OnMouseHWheel(UINT nFlags, short zDelta, CPoint pt);
afx_msg void OnNlinedesign();
afx_msg void OnUpdateNlinedesign(CCmdUI *pCmdUI);
afx_msg void OnShowPd10();
afx_msg void OnUpdateShowPd10(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();
@ -790,7 +790,7 @@ public:
afx_msg void OnBindTc12();
afx_msg void OnUpdateShowTc12(CCmdUI *pCmdUI);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void On32855();
afx_msg void OnBindBackLine();
afx_msg void OnMove(int x, int y);
@ -906,6 +906,9 @@ public:
afx_msg void OnUpdateShowLine10(CCmdUI *pCmdUI);
afx_msg void OnBindline9();
afx_msg void OnBindline10();
afx_msg void OnShowLine14();
afx_msg void OnUpdateShowLine14(CCmdUI *pCmdUI);
};
//{{AFX_INSERT_LOCATION}}

@ -233,5 +233,5 @@ bool g_bMarkerPlot[g_iMarkerPtNum] = {false};
-------------------------------------------------------------------------------------------------------------*/
bool g_b981ADesktop = false;
bool g_b981APad = true;
bool g_b98CADesktop = false;
bool g_b981APad = false;
bool g_b98CADesktop = true;

@ -329,14 +329,18 @@
#define ID__32904 32904
#define ID_EDIT 32905
#define ID_EDIT_LINEPOINT 32906
#define ID_32907 32907
#define IDM_SHOW_LINE14 32908
#define ID_SHOW_BACKLINE 32909
#define ID_BIND_BACKLINE 32910
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 1078
#define _APS_NEXT_COMMAND_VALUE 32907
#define _APS_NEXT_CONTROL_VALUE 1051
#define _APS_NEXT_COMMAND_VALUE 32911
#define _APS_NEXT_CONTROL_VALUE 1050
#define _APS_NEXT_SYMED_VALUE 1000
#endif
#endif

Loading…
Cancel
Save