feat: 测绘航线完善 #30

Merged
WuChengbo merged 1 commits from dev/cbwu into master 12 months ago

@ -691,6 +691,7 @@ BEGIN
MENUITEM "显示禁飞区4", IDM_SHOW_NOFLYZONE4
MENUITEM "显示禁飞区5", IDM_SHOW_NOFLYZONE5
END
MENUITEM "²â»æº½ÏßÉè¼Æ", ID_DESIGNSURVEYLINE
END
END

@ -626,6 +626,8 @@ BEGIN_MESSAGE_MAP(CGISDlg, CBCGPDialog)
ON_MESSAGE(WM_SEND_SHOWSURVEYREGION, &CGISDlg::OnShowSurveyRegion) //显示测绘区域
ON_MESSAGE(WM_SEND_SHOWSURVEYLINE, &CGISDlg::OnShowSurveyRegion) //显示测绘航线
ON_MESSAGE(WM_CLEAR_TMPSURVEYFEATURE, &CGISDlg::OnClearTmpSurveyFeature) //显示测绘航线
ON_MESSAGE(WM_BIND_SURVEYLINE, &CGISDlg::OnBindSurveyLine) //装订测绘航线
ON_COMMAND(ID_DESIGNSURVEYLINE,OnShowDesignSurveyLineDlg) //显示测绘航线设计对话框
END_MESSAGE_MAP()
@ -1009,13 +1011,6 @@ void CGISDlg::OnMapFullScreen()
m_bLDSetPoint = FALSE;
m_bSelectFeatureFlag = false;
/*
if (designSurveyLineDlg==nullptr)
{
designSurveyLineDlg = new DesignSurveyLineDlg();
}
designSurveyLineDlg->ShowWindow(true);*/
}
@ -8366,6 +8361,28 @@ afx_msg LRESULT CGISDlg::OnClearTmpSurveyFeature(WPARAM wParam, LPARAM lParam)
return 0;
}
//装订测绘航线
afx_msg LRESULT CGISDlg::OnBindSurveyLine(WPARAM wParam,LPARAM lParam)
{
int lineID = (int)wParam;
// TODO: 在此添加命令处理程序代码
m_struMapOut.cmd=MapCmd_BindLine;
m_struMapOut.ID=lineID;
::SendMessage(GetParent()->GetSafeHwnd(),MESSAGE_B8MAP,(int)(&m_struMapOut),0);
return 0;
}
//功能:显示测绘航线设计对话框
void CGISDlg::OnShowDesignSurveyLineDlg()
{
if (designSurveyLineDlg==nullptr)
{
designSurveyLineDlg = new DesignSurveyLineDlg();
}
designSurveyLineDlg->ShowWindow(true);
}
/****************************多机航线一键生成************************************/
void CGISDlg::GetMultiRouteLine(double azimuth,double lineInterval,int lineNumber,PtStruct* lineStruct,int nLinePts,vector<vector<PtStruct>>& resultLines)
{
@ -8463,6 +8480,8 @@ void CGISDlg::SaveMultiRouteLine(CString pathDirName,double heightInterval,const

@ -971,12 +971,17 @@ public:
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);
void SaveMultiRouteLine(CString pathDirName,double heightInterval,const vector<vector<PtStruct>>& resultLines);

@ -16,6 +16,8 @@ DesignSurveyLineDlg::DesignSurveyLineDlg(CWnd* pParent /*=NULL*/)
EnableVisualManagerStyle(TRUE, TRUE);
bDrawRegion = false;
lineID = 5;//测绘航线号
}
DesignSurveyLineDlg::~DesignSurveyLineDlg()
@ -167,7 +169,7 @@ void DesignSurveyLineDlg::saveSurveyLine(const vector<double>&surveyLineLons,con
g_lineFileName = extractFileName(dlg.GetFileName());
FILE* fp = fopen(filename,"w");
int iLineNum = 5;
int iLineNum = lineID;
fprintf(fp,"%d, 0, %.7f, %.7f, %.2f, 0, 00, 03\n", iLineNum, 0.0, 0.0, 0.0);
int i = 0;
for (i;i<surveyLineLons.size()-1;++i)
@ -215,14 +217,14 @@ bool DesignSurveyLineDlg::saveSurveyRegion(const vector<double>&surveyRegionLons
g_regionFileName = extractFileName(dlg.GetFileName());
FILE* fp = fopen(filename,"w");
int iLineNum = 5;
int iLineNum = lineID;
fprintf(fp,"%d, 0, %.7f, %.7f, %.2f, 0, 00, 03\n", iLineNum, 0.0, 0.0, 0.0);
int i = 0;
for (i;i<surveyRegionLons.size()-2;++i)
{
fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, 00, 03\n", iLineNum,i+1, surveyRegionLons[i], surveyRegionLats[i], 0);
fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, 00, 03\n", iLineNum,i+1, surveyRegionLons[i], surveyRegionLats[i], 0.0);
}
fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, 03, 01\n", iLineNum,i+1, surveyRegionLons[i], surveyRegionLats[i], 0);
fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, 03, 01\n", iLineNum,i+1, surveyRegionLons[i], surveyRegionLats[i], 0.0);
fclose(fp);
return true;
}else
@ -298,7 +300,11 @@ void DesignSurveyLineDlg::OnBnClickedBtnSaveregion()
//装订测绘航线
void DesignSurveyLineDlg::OnBnClickedBtnBindline()
{
// TODO: 在此添加控件通知处理程序代码
//发送消息到主程序,进行标绘
if (g_mapHwnd != NULL)
{
::SendMessage(g_mapHwnd, WM_BIND_SURVEYLINE, (WPARAM)lineID, 0);
}
}
//生成航测航线

@ -30,6 +30,7 @@ private:
void calculateSurveyLine(double lineInterval,vector<double>&surveyLineLons,vector<double>& surveyLineLats);//计算测绘航线
void saveSurveyLine(const vector<double>&surveyLineLons,const vector<double>& surveyLineLats,double height); //保存测绘航线
bool saveSurveyRegion(const vector<double>&surveyRegionLons,const vector<double>& surveyRegionLats); //保存航测区域
int lineID;
//测绘航线坐标
vector<double> surveyLineLons;
vector<double> surveyLineLats;

@ -111,7 +111,6 @@
#define IDC_EDIT_GROUND_LON 1035
#define IDC_EDIT_ORG_DISTANCE 1036
#define IDC_EDIT_GROUND_LAT 1036
#define IDC_RADIO5 1036
#define IDC_RADIO_MultiRoute 1036
#define IDC_EDIT_SECT_AZ_ANGLE2 1037
#define IDC_EDIT_ORG_AZ_ANGLE 1037
@ -418,13 +417,16 @@
#define IDM_SHOW_NOFLYZONE5 32937
#define ID_32938 32938
#define IDM_BIND_ZONE 32939
#define ID__32940 32940
#define ID__DESIGNSURVEYLINE 32941
#define ID_DESIGNSURVEYLINE 32942
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 1174
#define _APS_NEXT_COMMAND_VALUE 32940
#define _APS_NEXT_COMMAND_VALUE 32943
#define _APS_NEXT_CONTROL_VALUE 1055
#define _APS_NEXT_SYMED_VALUE 1000
#endif

Loading…
Cancel
Save