|
|
|
|
// designsurveylinedlg.cpp : ʵ<><CAB5><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "designsurveylinedlg.h"
|
|
|
|
|
#include "afxdialogex.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// DesignSurveyLineDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(DesignSurveyLineDlg, CBCGPDialog)
|
|
|
|
|
|
|
|
|
|
DesignSurveyLineDlg::DesignSurveyLineDlg(CWnd* pParent /*=NULL*/)
|
|
|
|
|
: CBCGPDialog(DesignSurveyLineDlg::IDD, pParent)
|
|
|
|
|
{
|
|
|
|
|
EnableVisualManagerStyle(TRUE, TRUE);
|
|
|
|
|
|
|
|
|
|
bDrawRegion = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DesignSurveyLineDlg::~DesignSurveyLineDlg()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DesignSurveyLineDlg::DoDataExchange(CDataExchange* pDX)
|
|
|
|
|
{
|
|
|
|
|
CBCGPDialog::DoDataExchange(pDX);
|
|
|
|
|
DDX_Control(pDX, IDC_BTN_SAVEREGION, m_btnSaveRegion);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(DesignSurveyLineDlg, CBCGPDialog)
|
|
|
|
|
ON_BN_CLICKED(IDC_BTN_INPUTREGION, &DesignSurveyLineDlg::OnBnClickedBtnInputregion)
|
|
|
|
|
ON_BN_CLICKED(IDC_BTN_DRAWREGION, &DesignSurveyLineDlg::OnBnClickedBtnDrawregion)
|
|
|
|
|
ON_BN_CLICKED(IDC_BTN_SAVEREGION, &DesignSurveyLineDlg::OnBnClickedBtnSaveregion)
|
|
|
|
|
ON_BN_CLICKED(IDC_BTN_BINDLINE, &DesignSurveyLineDlg::OnBnClickedBtnBindline)
|
|
|
|
|
ON_BN_CLICKED(IDC_BTN_CALCULATELINE, &DesignSurveyLineDlg::OnBnClickedBtnCalculateline)
|
|
|
|
|
ON_WM_CLOSE()
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
BOOL DesignSurveyLineDlg::OnInitDialog()
|
|
|
|
|
{
|
|
|
|
|
CBCGPDialog::OnInitDialog();
|
|
|
|
|
CenterWindow();
|
|
|
|
|
GetDlgItem( IDC_BTN_CALCULATELINE )->EnableWindow( false );
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡû<C8A1>к<EFBFBD><EFBFBD><D7BA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
CString DesignSurveyLineDlg::extractFileName(CString fileName)
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
int dotIndex = fileName.ReverseFind(_T('.'));
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>˵㣬<CBB5><E3A3AC><EFBFBD>ҵ㲻<D2B5>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD>
|
|
|
|
|
if (dotIndex != -1)
|
|
|
|
|
{
|
|
|
|
|
// <20><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString fileNameWithoutExtension = fileName.Left(dotIndex);
|
|
|
|
|
return fileNameWithoutExtension;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD><D2B5>㣬˵<E3A3AC><CBB5>û<EFBFBD>к<EFBFBD><EFBFBD><D7BA>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ʾ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
return fileName;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void DesignSurveyLineDlg::SetSurveyRegion(const vector<double>& lons,const vector<double>& lats)
|
|
|
|
|
{
|
|
|
|
|
for (int i=0;i<lons.size();++i)
|
|
|
|
|
{
|
|
|
|
|
surveyRegionLons.push_back(lons[i]);
|
|
|
|
|
surveyRegionLats.push_back(lats[i]);
|
|
|
|
|
}
|
|
|
|
|
GetDlgItem( IDC_BTN_CALCULATELINE )->EnableWindow( true );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><E6BABD>
|
|
|
|
|
void DesignSurveyLineDlg::calculateSurveyLine(double lineInterval,vector<double>&surveyLineLons,vector<double>& surveyLineLats)
|
|
|
|
|
{
|
|
|
|
|
vector<double> recLons;
|
|
|
|
|
vector<double> recLats;
|
|
|
|
|
TopologicalAnalysis analysis;
|
|
|
|
|
GeoCompute geocompute;
|
|
|
|
|
analysis.GetBoundingBoxVertices(surveyRegionLons,surveyRegionLats,recLons,recLats);
|
|
|
|
|
double lon1,lat1,lon2,lat2;
|
|
|
|
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>и<EFBFBD><D0B8><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><DFBC><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
geocompute.computeOffsetGeoPosition(recLons[0],recLats[0],180,lineInterval/2000,lon1,lat1);
|
|
|
|
|
geocompute.computeOffsetGeoPosition(recLons[1],recLats[1],180,lineInterval/2000,lon2,lat2);
|
|
|
|
|
Point2D pt1,pt2;
|
|
|
|
|
pt1.x = lon1;
|
|
|
|
|
pt1.y = lat1;
|
|
|
|
|
pt2.x = lon2;
|
|
|
|
|
pt2.y = lat2;
|
|
|
|
|
vector<Point2D> result;
|
|
|
|
|
analysis.linePolygonIntersections(pt1,pt2,surveyRegionLons,surveyRegionLats,result);
|
|
|
|
|
|
|
|
|
|
while(lat1>recLats[2]){
|
|
|
|
|
//ƽ<><C6BD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
|
|
|
|
|
geocompute.computeOffsetGeoPosition(lon1,lat1,180,lineInterval/1000,lon1,lat1);
|
|
|
|
|
geocompute.computeOffsetGeoPosition(lon2,lat2,180,lineInterval/1000,lon2,lat2);
|
|
|
|
|
pt1.x = lon1;
|
|
|
|
|
pt1.y = lat1;
|
|
|
|
|
pt2.x = lon2;
|
|
|
|
|
pt2.y = lat2;
|
|
|
|
|
//<2F><><EFBFBD>㽻<EFBFBD><E3BDBB>
|
|
|
|
|
analysis.linePolygonIntersections(pt1,pt2,surveyRegionLons,surveyRegionLats,result);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int j = 1;
|
|
|
|
|
for (int i=0;i<result.size();i+=2)
|
|
|
|
|
{
|
|
|
|
|
if (j == 1)
|
|
|
|
|
{
|
|
|
|
|
surveyLineLons.push_back(result[i+1].x);
|
|
|
|
|
surveyLineLons.push_back(result[i].x);
|
|
|
|
|
surveyLineLats.push_back(result[i+1].y);
|
|
|
|
|
surveyLineLats.push_back(result[i].y);
|
|
|
|
|
j = 0;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
else if (j==0)
|
|
|
|
|
{
|
|
|
|
|
surveyLineLons.push_back(result[i].x);
|
|
|
|
|
surveyLineLons.push_back(result[i+1].x);
|
|
|
|
|
surveyLineLats.push_back(result[i].y);
|
|
|
|
|
surveyLineLats.push_back(result[i+1].y);
|
|
|
|
|
j=1;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><E6BABD>
|
|
|
|
|
void DesignSurveyLineDlg::saveSurveyLine(const vector<double>&surveyLineLons,const vector<double>& surveyLineLats,double height)
|
|
|
|
|
{
|
|
|
|
|
//д<><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
CString filename;
|
|
|
|
|
CString strRouteFileDir = GetSoftwareCurrentDirectory() + _T("\\Route\\") + _T("<EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><EFBFBD>\\");
|
|
|
|
|
//<2F><><EFBFBD>溽<EFBFBD><E6BABD><EFBFBD>ļ<EFBFBD><C4BC>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (!SearchDirectory(strRouteFileDir))
|
|
|
|
|
{
|
|
|
|
|
CreateDirectory(strRouteFileDir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TCHAR s[10000];
|
|
|
|
|
s[0]=0;
|
|
|
|
|
CString defaultName = g_regionFileName + "-<2D><><EFBFBD>溽<EFBFBD><E6BABD>.route";
|
|
|
|
|
CFileDialog dlg(FALSE, _T(".route"), defaultName);
|
|
|
|
|
dlg.m_ofn.lpstrTitle=_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
|
|
|
|
|
/*
|
|
|
|
|
dlg.m_ofn.lpstrFile=s;
|
|
|
|
|
dlg.m_ofn.nMaxFile=sizeof(s)/sizeof(TCHAR);*/
|
|
|
|
|
|
|
|
|
|
TCHAR filter[500]=_T("<EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>(*.route)\0*.route\0");
|
|
|
|
|
dlg.m_ofn.lpstrFilter=filter;
|
|
|
|
|
dlg.m_ofn.Flags|=OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY|OFN_CREATEPROMPT;
|
|
|
|
|
dlg.m_ofn.lpstrInitialDir = strRouteFileDir;
|
|
|
|
|
|
|
|
|
|
if (IDOK == dlg.DoModal())
|
|
|
|
|
{
|
|
|
|
|
filename = dlg.GetPathName();
|
|
|
|
|
g_linePathName = filename;
|
|
|
|
|
g_lineFileName = extractFileName(dlg.GetFileName());
|
|
|
|
|
|
|
|
|
|
FILE* fp = fopen(filename,"w");
|
|
|
|
|
int iLineNum = 5;
|
|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, 00, 03\n", iLineNum,i+1, surveyLineLons[i], surveyLineLats[i], height);
|
|
|
|
|
}
|
|
|
|
|
fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, 02, 01\n", iLineNum,i+1, surveyLineLons[i], surveyLineLats[i], height);
|
|
|
|
|
fclose(fp);
|
|
|
|
|
}else
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>溽<EFBFBD><E6BABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool DesignSurveyLineDlg::saveSurveyRegion(const vector<double>&surveyRegionLons,const vector<double>& surveyRegionLats)
|
|
|
|
|
{
|
|
|
|
|
//д<><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
CString filename;
|
|
|
|
|
CString strRouteFileDir = GetSoftwareCurrentDirectory() + _T("\\Route\\") + _T("<EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><EFBFBD>\\");
|
|
|
|
|
//<2F><><EFBFBD>溽<EFBFBD><E6BABD><EFBFBD>ļ<EFBFBD><C4BC>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (!SearchDirectory(strRouteFileDir))
|
|
|
|
|
{
|
|
|
|
|
CreateDirectory(strRouteFileDir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TCHAR s[10000];
|
|
|
|
|
s[0]=0;
|
|
|
|
|
CFileDialog dlg(FALSE, _T(".txt"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.txt"));
|
|
|
|
|
dlg.m_ofn.lpstrTitle=_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
|
|
|
|
|
/*
|
|
|
|
|
dlg.m_ofn.lpstrFile=s;
|
|
|
|
|
dlg.m_ofn.nMaxFile=sizeof(s)/sizeof(TCHAR);*/
|
|
|
|
|
|
|
|
|
|
TCHAR filter[500]=_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>(*.txt)\0*.txt\0");
|
|
|
|
|
dlg.m_ofn.lpstrFilter=filter;
|
|
|
|
|
dlg.m_ofn.Flags|=OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY|OFN_CREATEPROMPT;
|
|
|
|
|
dlg.m_ofn.lpstrInitialDir = strRouteFileDir;
|
|
|
|
|
|
|
|
|
|
if (IDOK == dlg.DoModal())
|
|
|
|
|
{
|
|
|
|
|
filename = dlg.GetPathName();
|
|
|
|
|
g_regionPathName = filename;
|
|
|
|
|
g_regionFileName = extractFileName(dlg.GetFileName());
|
|
|
|
|
|
|
|
|
|
FILE* fp = fopen(filename,"w");
|
|
|
|
|
int iLineNum = 5;
|
|
|
|
|
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, 03, 01\n", iLineNum,i+1, surveyRegionLons[i], surveyRegionLats[i], 0);
|
|
|
|
|
fclose(fp);
|
|
|
|
|
return true;
|
|
|
|
|
}else
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// DesignSurveyLineDlg <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>뺽<EFBFBD><EBBABD><EFBFBD><EFBFBD>
|
|
|
|
|
void DesignSurveyLineDlg::OnBnClickedBtnInputregion()
|
|
|
|
|
{
|
|
|
|
|
//д<><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
CString filename;
|
|
|
|
|
CString strRouteFileDir = GetSoftwareCurrentDirectory() + _T("\\Route\\") + _T("<EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><EFBFBD>\\");
|
|
|
|
|
|
|
|
|
|
TCHAR s[10000];
|
|
|
|
|
s[0]=0;
|
|
|
|
|
CFileDialog dlg(TRUE);
|
|
|
|
|
dlg.m_ofn.lpstrTitle=_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
|
|
|
|
|
dlg.m_ofn.lpstrFile=s;
|
|
|
|
|
dlg.m_ofn.nMaxFile=sizeof(s)/sizeof(TCHAR);
|
|
|
|
|
|
|
|
|
|
TCHAR filter[500]=_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>(*.txt)\0*.txt\0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>(*.*)\0*.*\0");
|
|
|
|
|
dlg.m_ofn.lpstrFilter=filter;
|
|
|
|
|
dlg.m_ofn.Flags|=OFN_HIDEREADONLY;
|
|
|
|
|
dlg.m_ofn.lpstrInitialDir = strRouteFileDir;
|
|
|
|
|
|
|
|
|
|
// <20><>ʾ<EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>ȡ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ѡ<EFBFBD><D1A1>
|
|
|
|
|
if (dlg.DoModal() == IDOK)
|
|
|
|
|
{
|
|
|
|
|
// <20><>ȡѡ<C8A1><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
CString filePath = dlg.GetPathName();
|
|
|
|
|
g_regionPathName = filePath;
|
|
|
|
|
g_regionFileName = extractFileName(dlg.GetFileName());
|
|
|
|
|
|
|
|
|
|
char* path = filePath.GetBuffer();
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3ACBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
if (g_mapHwnd != NULL)
|
|
|
|
|
{
|
|
|
|
|
::SendMessage(g_mapHwnd, WM_SEND_SHOWSURVEYREGION, (WPARAM)path, 0);
|
|
|
|
|
}
|
|
|
|
|
GetDlgItem( IDC_BTN_CALCULATELINE )->EnableWindow( true );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void DesignSurveyLineDlg::OnBnClickedBtnDrawregion()
|
|
|
|
|
{
|
|
|
|
|
bDrawRegion = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>溽<EFBFBD><E6BABD><EFBFBD><EFBFBD>
|
|
|
|
|
void DesignSurveyLineDlg::OnBnClickedBtnSaveregion()
|
|
|
|
|
{
|
|
|
|
|
m_btnSaveRegion.EnableWindow(false);
|
|
|
|
|
if (saveSurveyRegion(surveyRegionLons,surveyRegionLats))
|
|
|
|
|
{
|
|
|
|
|
char* path = g_regionPathName.GetBuffer();
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3ACBD>б<EFBFBD><D0B1><EFBFBD>
|
|
|
|
|
if (g_mapHwnd != NULL)
|
|
|
|
|
{
|
|
|
|
|
::SendMessage(g_mapHwnd, WM_SEND_SHOWSURVEYREGION, (WPARAM)path, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_btnSaveRegion.EnableWindow(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD>溽<EFBFBD><E6BABD>
|
|
|
|
|
void DesignSurveyLineDlg::OnBnClickedBtnBindline()
|
|
|
|
|
{
|
|
|
|
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ɺ<EFBFBD><C9BA>⺽<EFBFBD><E2BABD>
|
|
|
|
|
void DesignSurveyLineDlg::OnBnClickedBtnCalculateline()
|
|
|
|
|
{
|
|
|
|
|
if (surveyRegionLats.size()<3)
|
|
|
|
|
{
|
|
|
|
|
BCGPMessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>ȱ<EFBFBD>ٺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CString cstr;
|
|
|
|
|
GetDlgItemText(IDC_EDIT_HEIGHT,cstr);
|
|
|
|
|
double height = _ttof(cstr);
|
|
|
|
|
if (height<=0||height>500)
|
|
|
|
|
{
|
|
|
|
|
BCGPMessageBox("<EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD>ΧΪ(0,500]m!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
GetDlgItemText(IDC_EDIT_LINEINTERVAL,cstr);
|
|
|
|
|
double lineInterval = _ttof(cstr);
|
|
|
|
|
if (lineInterval < 1 )
|
|
|
|
|
{
|
|
|
|
|
BCGPMessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1m");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
g_Height = height;
|
|
|
|
|
//<2F><><EFBFBD>溽<EFBFBD><E6BABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
vector<double> surveyLineLons;
|
|
|
|
|
vector<double> surveyLineLats;
|
|
|
|
|
//<2F><><EFBFBD>㺽<EFBFBD>⺽<EFBFBD><E2BABD>
|
|
|
|
|
calculateSurveyLine(lineInterval,surveyLineLons,surveyLineLats);
|
|
|
|
|
//<2F><><EFBFBD>溽<EFBFBD>⺽<EFBFBD><E2BABD>
|
|
|
|
|
saveSurveyLine(surveyLineLons,surveyLineLats,height);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3ACBD>б<EFBFBD><D0B1><EFBFBD>
|
|
|
|
|
if (g_mapHwnd != NULL)
|
|
|
|
|
{
|
|
|
|
|
char* path = g_linePathName.GetBuffer();
|
|
|
|
|
::SendMessage(g_mapHwnd, WM_SEND_SHOWSURVEYLINE, (WPARAM)path, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DesignSurveyLineDlg::OnClose()
|
|
|
|
|
{
|
|
|
|
|
CBCGPDialog::OnClose();
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3ACBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
if (g_mapHwnd != NULL)
|
|
|
|
|
{
|
|
|
|
|
::SendMessage(g_mapHwnd, WM_CLEAR_TMPSURVEYFEATURE, 0, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|