type(feat):新增航线设计时限制至少三个航点。

pull/14/head
cbwu 2 years ago
parent 602b841e7a
commit 7ddb5f7d90

@ -545,3 +545,4 @@ void CDlgMarker::SetParentCheck(HTREEITEM item, BOOL bCheck)
SetParentCheck(parent, m_treeMarkers.GetCheck(parent)); SetParentCheck(parent, m_treeMarkers.GetCheck(parent));
} }

@ -490,25 +490,62 @@ END
// Bitmap // Bitmap
// //
IDB_BITMAP_FLYLINE_DESIGN BITMAP "res\\编辑.bmp" IDB_BITMAP_FLYLINE_DESIGN BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\编辑.bmp"
IDB_BITMAP_ZOOMIN BITMAP "res\\放大.bmp" IDB_BITMAP_ZOOMIN BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\放大.bmp"
IDB_BITMAP_ADD_FLYLINE BITMAP "res\\加载弹道数据.bmp" IDB_BITMAP_ADD_FLYLINE BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载弹道数据.bmp"
IDB_BITMAP_ADD_SHPFILE BITMAP "res\\加载矢量数据.bmp" IDB_BITMAP_ADD_SHPFILE BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载矢量数据.bmp"
IDB_BITMAP_ADD_IMGFILE BITMAP "res\\加载影像数据.bmp" IDB_BITMAP_ADD_IMGFILE BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载影像数据.bmp"
IDB_BITMAP_RULER BITMAP "res\\清除航迹.bmp" IDB_BITMAP_RULER BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\清除航迹.bmp"
IDB_BITMAP_FULLSCREEN BITMAP "res\\全图.bmp" IDB_BITMAP_FULLSCREEN BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\全图.bmp"
IDB_BITMAP_DELETE_LAYER BITMAP "res\\删除图层.bmp" IDB_BITMAP_DELETE_LAYER BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\删除图层.bmp"
IDB_BITMAP_ZOOMOUT BITMAP "res\\缩小.bmp" IDB_BITMAP_ZOOMOUT BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\缩小.bmp"
IDB_BITMAP10 BITMAP "res\\添加文字.bmp" IDB_BITMAP10 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\添加文字.bmp"
IDB_BITMAP_LAYER_MANAGE BITMAP "res\\图层管理.bmp" IDB_BITMAP_LAYER_MANAGE BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\图层管理.bmp"
IDB_BITMAP_SELECT BITMAP "res\\选择.bmp" IDB_BITMAP_SELECT BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\选择.bmp"
IDB_BITMAP_MOVE BITMAP "res\\移动.bmp" IDB_BITMAP_MOVE BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\移动.bmp"
IDB_BITMAP14 BITMAP "res\\鹰眼图.bmp" IDB_BITMAP14 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\鹰眼图.bmp"
IDB_BITMAP_XY BITMAP "res\\坐标.bmp" IDB_BITMAP_XY BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\坐标.bmp"
IDB_BITMAP_SURVEY BITMAP "res\\测量.bmp" IDB_BITMAP_SURVEY BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\测量.bmp"
IDB_BITMAP_PRINT BITMAP "res\\打印.bmp" IDB_BITMAP_PRINT BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\打印.bmp"
IDB_BITMAP_REFRESH BITMAP "res\\刷新.bmp" IDB_BITMAP_REFRESH BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\刷新.bmp"
ID_STR_ZCW BITMAP "res\\放大.bmp" ID_STR_ZCW BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\放大.bmp"
IDB_BITMAP3 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\编辑.bmp"
IDB_BITMAP4 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\测量.bmp"
IDB_BITMAP5 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\打印.bmp"
IDB_BITMAP6 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载弹道数据.bmp"
IDB_BITMAP7 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载矢量数据.bmp"
IDB_BITMAP8 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载影像数据.bmp"
IDB_BITMAP9 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\清除航迹.bmp"
IDB_BITMAP11 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\全图.bmp"
IDB_BITMAP12 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\删除图层.bmp"
IDB_BITMAP13 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\刷新.bmp"
IDB_BITMAP15 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\缩小.bmp"
IDB_BITMAP16 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\添加文字.bmp"
IDB_BITMAP17 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\图层管理.bmp"
IDB_BITMAP18 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\选择.bmp"
IDB_BITMAP19 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\移动.bmp"
IDB_BITMAP20 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\鹰眼图.bmp"
IDB_BITMAP21 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\坐标.bmp"
IDB_BITMAP22 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\放大.bmp"
IDB_BITMAP23 BITMAP "C:\\Users\\DELL\\Desktop\\bmp32\\加载弹道数据.bmp"
IDB_BITMAP24 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\编辑.bmp"
IDB_BITMAP25 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\测量.bmp"
IDB_BITMAP26 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\打印.bmp"
IDB_BITMAP27 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载弹道数据.bmp"
IDB_BITMAP28 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载矢量数据.bmp"
IDB_BITMAP29 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\加载影像数据.bmp"
IDB_BITMAP30 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\清除航迹.bmp"
IDB_BITMAP31 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\全图.bmp"
IDB_BITMAP32 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\删除图层.bmp"
IDB_BITMAP33 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\刷新.bmp"
IDB_BITMAP34 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\缩小.bmp"
IDB_BITMAP35 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\添加文字.bmp"
IDB_BITMAP36 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\图层管理.bmp"
IDB_BITMAP37 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\选择.bmp"
IDB_BITMAP38 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\移动.bmp"
IDB_BITMAP39 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\鹰眼图.bmp"
IDB_BITMAP40 BITMAP "C:\\GCS-JE20230622-981A\\GISControlDlg\\res\\坐标.bmp"
IDB_BITMAP41 BITMAP "res\\放大.bmp"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //

@ -333,6 +333,7 @@
<ClCompile Include="vectortoraster.cpp" /> <ClCompile Include="vectortoraster.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="..\..\Users\DELL\Desktop\bmp32\加载弹道数据.bmp" />
<None Include="GISControlDlg.def" /> <None Include="GISControlDlg.def" />
<None Include="res\addMultiCast.ico" /> <None Include="res\addMultiCast.ico" />
<None Include="res\GISControlDlg.rc2" /> <None Include="res\GISControlDlg.rc2" />
@ -340,6 +341,7 @@
<None Include="res\icon2.ico" /> <None Include="res\icon2.ico" />
<None Include="res\toolbar1.bmp" /> <None Include="res\toolbar1.bmp" />
<None Include="res\toolbar2.bmp" /> <None Include="res\toolbar2.bmp" />
<None Include="ReadMe.txt" />
<None Include="res\全图.bmp" /> <None Include="res\全图.bmp" />
<None Include="res\删除图层.bmp" /> <None Include="res\删除图层.bmp" />
<None Include="res\刷新.bmp" /> <None Include="res\刷新.bmp" />
@ -358,7 +360,6 @@
<None Include="res\缩小.bmp" /> <None Include="res\缩小.bmp" />
<None Include="res\选择.bmp" /> <None Include="res\选择.bmp" />
<None Include="res\鹰眼图.bmp" /> <None Include="res\鹰眼图.bmp" />
<None Include="ReadMe.txt" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="GISControlDlg.rc"> <ResourceCompile Include="GISControlDlg.rc">

@ -194,68 +194,71 @@
<None Include="res\toolbar2.bmp"> <None Include="res\toolbar2.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\全图.bmp"> <None Include="ReadMe.txt" />
<None Include="res\icon1.ico">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\删除图层.bmp"> <None Include="res\icon2.ico">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\刷新.bmp"> <None Include="res\addMultiCast.ico">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\加载弹道数据.bmp"> <None Include="res\编辑.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\加载影像数据.bmp"> <None Include="res\测量.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\加载矢量数据.bmp"> <None Include="res\打印.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\图层管理.bmp"> <None Include="res\放大.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\坐标.bmp"> <None Include="res\加载弹道数据.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\打印.bmp"> <None Include="res\加载矢量数据.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\放大.bmp"> <None Include="res\加载影像数据.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\测量.bmp"> <None Include="res\清除航迹.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\添加文字.bmp"> <None Include="res\全图.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\清除航迹.bmp"> <None Include="res\删除图层.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\移动.bmp"> <None Include="res\刷新.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\编辑.bmp"> <None Include="res\缩小.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\缩小.bmp"> <None Include="res\添加文字.bmp">
<Filter>Resource Files</Filter>
</None>
<None Include="res\图层管理.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\选择.bmp"> <None Include="res\选择.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\鹰眼图.bmp"> <None Include="res\移动.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="ReadMe.txt" /> <None Include="res\鹰眼图.bmp">
<None Include="res\icon1.ico">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\icon2.ico"> <None Include="res\坐标.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="res\addMultiCast.ico"> <None Include="..\..\Users\DELL\Desktop\bmp32\加载弹道数据.bmp">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
</ItemGroup> </ItemGroup>

@ -646,7 +646,7 @@ BOOL CGISDlg::OnInitDialog()
//测试 //测试
m_rcgisSmallArea = m_rcGISArea; m_rcgisSmallArea = m_rcGISArea;
m_rcgisSmallArea.top = 24; m_rcgisSmallArea.top = 24;
//工具栏高度 //工具栏高度
m_toolbarHeight = m_rcgisSmallArea.top; m_toolbarHeight = m_rcgisSmallArea.top;
@ -1539,6 +1539,7 @@ void CGISDlg::OnShowRMenu()
// 获取子菜单 // 获取子菜单
CMenu* pSubMenu = menu.GetSubMenu(0); // 第一个子菜单 CMenu* pSubMenu = menu.GetSubMenu(0); // 第一个子菜单
//int nn = pSubMenu->GetMenuItemCount(); //int nn = pSubMenu->GetMenuItemCount();
if (pSubMenu) if (pSubMenu)
{ {
pSubMenu->ModifyMenu(5, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏高程分析 pSubMenu->ModifyMenu(5, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //隐藏高程分析
@ -4461,21 +4462,19 @@ void CGISDlg::CreateFloatToolBar()
m_ImageList.Create(24, 24, ILC_COLOR24|ILC_MASK, 0, 0); //创建Image List m_ImageList.Create(24, 24, ILC_COLOR24|ILC_MASK, 0, 0); //创建Image List
CRect rcToolBar; CRect rcToolBar;
/*rcToolBar.top = m_rcGISArea.top; /*
rcToolBar.top = m_rcGISArea.top;
rcToolBar.left = m_rcGISArea.right-24; rcToolBar.left = m_rcGISArea.right-24;
rcToolBar.bottom = m_rcGISArea.bottom; rcToolBar.bottom = m_rcGISArea.bottom;
rcToolBar.right = m_rcGISArea.right;*/ rcToolBar.right = m_rcGISArea.right;*/
//m_ToolBar.Create(TBSTYLE_FLAT | CCS_TOP | WS_VISIBLE | /*WS_BORDER |*/ CCS_ADJUSTABLE | TBSTYLE_TOOLTIPS, rcToolBar, this, IDR_TOOLBAR1); //创建Toolbar Control //m_ToolBar.Create(TBSTYLE_FLAT | CCS_TOP | WS_VISIBLE | /*WS_BORDER |*/ CCS_ADJUSTABLE | TBSTYLE_TOOLTIPS, rcToolBar, this, IDR_TOOLBAR1); //创建Toolbar Control
m_ToolBar.Create(TBSTYLE_FLAT | CCS_TOP | WS_VISIBLE | /*WS_BORDER |*/ TBSTYLE_TOOLTIPS, rcToolBar, this, IDR_TOOLBAR1); //创建Toolbar Control m_ToolBar.Create(TBSTYLE_FLAT | CCS_TOP | WS_VISIBLE | /*WS_BORDER |*/ TBSTYLE_TOOLTIPS, rcToolBar, this, IDR_TOOLBAR1); //创建Toolbar Control
m_ToolBar.SetBitmapSize(CSize(24, 24)); m_ToolBar.SetBitmapSize(CSize(24, 24));
int buttonItems = 14; int buttonItems = 14;
int i; int i;
for(i=0; i<buttonItems; i++) for(i=0; i<buttonItems; i++)
{ {
bm.LoadBitmap(Resource[i]); bm.LoadBitmap(Resource[i]);
@ -4736,21 +4735,20 @@ void CGISDlg::SetFlyLineShowStatus(const int lineID)
} }
else else
{ {
TCHAR filter[500]=_T("航线文件(*.txt)\0*.txt\0"); TCHAR filter[500]=_T("航线文件(*.txt)\0*.txt\0");
CFileDialog LineRouteDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter, NULL); CFileDialog LineRouteDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter, NULL);
/*LineRouteDlg.m_ofn.lpstrInitialDir = strRouteFileDir;*/ //LineRouteDlg.m_ofn.lpstrInitialDir = strRouteFileDir;
LineRouteDlg.m_ofn.lpstrFilter="txt(*.txt)\0*.txt"; LineRouteDlg.m_ofn.lpstrFilter="txt(*.txt)\0*.txt";
LineRouteDlg.m_ofn.lpstrTitle = "选择显示最新生成的航线"; LineRouteDlg.m_ofn.lpstrTitle = "选择显示最新生成的航线";
if (LineRouteDlg.DoModal() == IDOK) //用户单击OK按钮中止对话框的返回值 if (LineRouteDlg.DoModal() == IDOK) //用户单击OK按钮中止对话框的返回值
{ {
CString str = LineRouteDlg.GetPathName(); //获取文件路径名 CString str = LineRouteDlg.GetPathName(); //获取文件路径名
OnShowGivenLine(str/*GetFlyLineName(lineID)*/); //OnShowGivenLine(GetFlyLineName(lineID));
OnShowGivenLine(str);
} }
} }
} }
@ -5236,6 +5234,12 @@ void CGISDlg::OnAddpoint() //
void CGISDlg::OnEnddesign() //结束编辑 void CGISDlg::OnEnddesign() //结束编辑
{ {
// TODO: Add your command handler code here // TODO: Add your command handler code here
if (m_designLinePointNum < 3 && m_designLinePointNum>0)
{
BCGPMessageBox("航点数不得少于3!!!");
return;
}
//m_bEndSetPoint=TRUE; //m_bEndSetPoint=TRUE;
m_bSetPointModel=FALSE; m_bSetPointModel=FALSE;
@ -7287,6 +7291,12 @@ bool CGISDlg::RemovePointInLine(int ptPos,DrawLineDataStruct& backLineDataGroup)
// 是否选中线要素,若选中返回航线编号,否则返回-1 // 是否选中线要素,若选中返回航线编号,否则返回-1
int CGISDlg::IsSelectLine(double* pt) int CGISDlg::IsSelectLine(double* pt)
{ {
float tolerance = 0.001;
//平板模式增大选中触发范围
if (g_b981APad)
{
tolerance = 0.003;
}
if (m_ShowedLineDataList.size()==0) if (m_ShowedLineDataList.size()==0)
{ {
return false; return false;
@ -7297,7 +7307,7 @@ int CGISDlg::IsSelectLine(double* pt)
std::vector<double> lineX,lineY; std::vector<double> lineX,lineY;
DrawLineDataStruct lineData = i->second; DrawLineDataStruct lineData = i->second;
TransformToVectorPoints(lineData,lineX,lineY); TransformToVectorPoints(lineData,lineX,lineY);
if(topologicalAnalysis.isPointInPolyLine(pt,lineX,lineY)) if(topologicalAnalysis.isPointInPolyLine(pt,lineX,lineY,tolerance))
{ {
return lineData.lineID; return lineData.lineID;
}; };

@ -6,6 +6,7 @@
//#include "afxdialogex.h" //#include "afxdialogex.h"
#include "Globe.h" #include "Globe.h"
#include "afxwin.h" #include "afxwin.h"
#include "afxdialogex.h"
// CLonLatDlg 对话框 // CLonLatDlg 对话框
@ -32,6 +33,7 @@ void CLonLatDlg::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_EDIT_LON, m_lon_edit); DDX_Control(pDX, IDC_EDIT_LON, m_lon_edit);
DDX_Control(pDX, IDC_EDIT_LAT, m_lat_edit); DDX_Control(pDX, IDC_EDIT_LAT, m_lat_edit);
DDX_Control(pDX, IDC_COMBO_TYPE_XY, m_coord_type); DDX_Control(pDX, IDC_COMBO_TYPE_XY, m_coord_type);
DDX_Control(pDX, IDC_CONFIRM_BTN, m_BtnOK);
} }

@ -14,7 +14,6 @@ public:
virtual ~CLonLatDlg(); virtual ~CLonLatDlg();
bool GetAutoEditStatus(); bool GetAutoEditStatus();
//输入经度、纬度,并显示出来 //输入经度、纬度,并显示出来
//输入经度lon纬度lat //输入经度lon纬度lat
void SetLonLatInfo(const double lon, const double lat); void SetLonLatInfo(const double lon, const double lat);
@ -52,4 +51,5 @@ public:
afx_msg void OnCbnSelchangeComboType(); afx_msg void OnCbnSelchangeComboType();
// 坐标类型 // 坐标类型
CComboBox m_coord_type; CComboBox m_coord_type;
CButton m_BtnOK;
}; };

@ -12,7 +12,7 @@ TopologicalAnalysis::~TopologicalAnalysis(void)
} }
bool TopologicalAnalysis::isPointInLine(double* point, double* startPoint, double* endPoint) bool TopologicalAnalysis::isPointInLine(double* point, double* startPoint, double* endPoint,float tolerance)
{ {
double AX = startPoint[0]; double AX = startPoint[0];
double AY = startPoint[1]; double AY = startPoint[1];
@ -32,7 +32,7 @@ bool TopologicalAnalysis::isPointInLine(double* point, double* startPoint, doubl
double PA = sqrt(dx_PA*dx_PA + dy_PA*dy_PA); double PA = sqrt(dx_PA*dx_PA + dy_PA*dy_PA);
double PB = sqrt(dx_PB*dx_PB + dy_PB*dy_PB); double PB = sqrt(dx_PB*dx_PB + dy_PB*dy_PB);
double rate = abs(PA + PB - AB) / AB; double rate = abs(PA + PB - AB) / AB;
if (rate < 0.001) if (rate < tolerance)
{ {
return true; return true;
} }
@ -43,7 +43,7 @@ bool TopologicalAnalysis::isPointInLine(double* point, double* startPoint, doubl
} }
//ÅжÏÏßÊÇ·ñÔÚÕÛÏßÉÏ //ÅжÏÏßÊÇ·ñÔÚÕÛÏßÉÏ
int TopologicalAnalysis::isPointInPolyLine(double* point, vector<double>& lineX,vector<double>& lineY) int TopologicalAnalysis::isPointInPolyLine(double* point, vector<double>& lineX,vector<double>& lineY,float tolerance)
{ {
int lineNum = lineX.size(); int lineNum = lineX.size();
double startPoint[2],endPoint[2]; double startPoint[2],endPoint[2];
@ -53,7 +53,7 @@ int TopologicalAnalysis::isPointInPolyLine(double* point, vector<double>& lineX,
startPoint[1] = lineY.at(i); startPoint[1] = lineY.at(i);
endPoint[0] = lineX.at(i+1); endPoint[0] = lineX.at(i+1);
endPoint[1] = lineY.at(i+1); endPoint[1] = lineY.at(i+1);
bool b_in = isPointInLine(point,startPoint,endPoint); bool b_in = isPointInLine(point,startPoint,endPoint,tolerance);
if(b_in) if(b_in)
{ {
return (i+1); return (i+1);
@ -64,7 +64,7 @@ int TopologicalAnalysis::isPointInPolyLine(double* point, vector<double>& lineX,
startPoint[1] = lineY.at(lineNum-1); startPoint[1] = lineY.at(lineNum-1);
endPoint[0] = lineX.at(0); endPoint[0] = lineX.at(0);
endPoint[1] = lineY.at(0); endPoint[1] = lineY.at(0);
bool b_end = isPointInLine(point,startPoint,endPoint); bool b_end = isPointInLine(point,startPoint,endPoint,tolerance);
if (b_end) if (b_end)
{ {
return lineNum; return lineNum;

@ -9,10 +9,10 @@ public:
TopologicalAnalysis(void); TopologicalAnalysis(void);
~TopologicalAnalysis(void); ~TopologicalAnalysis(void);
bool isPointInLine(double* point, double* startPoint, double* endPoint); bool isPointInLine(double* point, double* startPoint, double* endPoint,float tolerance=0.001);
// 判断点是否在线上 // 判断点是否在线上
int isPointInPolyLine(double* point, vector<double>& lineX,vector<double>& lineY); int isPointInPolyLine(double* point, vector<double>& lineX,vector<double>& lineY,float tolerance=0.001);
bool isPointInLine(CPoint1 point, CPoint1 startPoint, CPoint1 endPoint); bool isPointInLine(CPoint1 point, CPoint1 startPoint, CPoint1 endPoint);
//根据两点求出垂线过第三点的直线的交点 //根据两点求出垂线过第三点的直线的交点

@ -1,13 +1,13 @@
// //
// GISCONTROLDLG.RC2 - resources Microsoft Visual C++ does not edit directly // GISCONTROLDLG.RC2 - resources Microsoft Visual C++ does not edit directly
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++ #error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED #endif //APSTUDIO_INVOKED
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here... // Add manually edited resources here...
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

Binary file not shown.

@ -164,19 +164,37 @@
#define IDD_DIALOG_DEMALT 1074 #define IDD_DIALOG_DEMALT 1074
#define IDD_DLG_MODIFY_POINT 1075 #define IDD_DLG_MODIFY_POINT 1075
#define IDD_DIALOG_EDITINGSAVE 1077 #define IDD_DIALOG_EDITINGSAVE 1077
#define IDB_BITMAP3 1096
#define IDB_BITMAP4 1097
#define IDB_BITMAP5 1098
#define IDB_BITMAP6 1100
#define IDB_BITMAP7 1101
#define IDB_BITMAP8 1102
#define IDB_BITMAP9 1103
#define IDB_BITMAP11 1104
#define IDC_BUTTON_SAVEIMAGE 1105 #define IDC_BUTTON_SAVEIMAGE 1105
#define IDB_BITMAP12 1105
#define IDC_BUTTON_LOADROUTE 1106 #define IDC_BUTTON_LOADROUTE 1106
#define IDB_BITMAP13 1106
#define IDC_BUTTON_STOPROUTE 1107 #define IDC_BUTTON_STOPROUTE 1107
#define IDB_BITMAP15 1107
#define IDC_BUTTON_DRAWPOINT 1108 #define IDC_BUTTON_DRAWPOINT 1108
#define IDB_BITMAP16 1108
#define IDC_BUTTON_SELECTPTINMAP 1109 #define IDC_BUTTON_SELECTPTINMAP 1109
#define IDB_BITMAP17 1109
#define IDC_BUTTON_GETALTVALUE 1110 #define IDC_BUTTON_GETALTVALUE 1110
#define IDB_BITMAP18 1110
#define IDC_BUTTON_REGIONANAYLSIS 1111 #define IDC_BUTTON_REGIONANAYLSIS 1111
#define IDB_BITMAP19 1111
#define IDC_CHECK_REALTIME 1112 #define IDC_CHECK_REALTIME 1112
#define IDB_BITMAP20 1112
#define IDC_BUTTON_REGIONDELETE 1113 #define IDC_BUTTON_REGIONDELETE 1113
#define IDB_BITMAP21 1113
#define IDC_BUTTON_DRAWFIGHT 1114 #define IDC_BUTTON_DRAWFIGHT 1114
#define IDC_BUTTON_CLEARRESULT 1115 #define IDC_BUTTON_CLEARRESULT 1115
#define IDC_CHECK_RT_LIGHT 1116 #define IDC_CHECK_RT_LIGHT 1116
#define IDC_BUTTON_CONTOURLINE 1117 #define IDC_BUTTON_CONTOURLINE 1117
#define IDB_BITMAP22 1117
#define IDC_GAUGE_PROMPT_LINE 1118 #define IDC_GAUGE_PROMPT_LINE 1118
#define IDC_BUTTON_CONTOURDELETE 1119 #define IDC_BUTTON_CONTOURDELETE 1119
#define IDC_BUTTON_CLEARLINELAYER 1120 #define IDC_BUTTON_CLEARLINELAYER 1120
@ -186,6 +204,25 @@
#define IDC_GAUGE_PROMPT_CONTOUR 1124 #define IDC_GAUGE_PROMPT_CONTOUR 1124
#define IDC_BUTTON_DELETEFIGHT 1125 #define IDC_BUTTON_DELETEFIGHT 1125
#define IDC_BUTTON_GETDEMREGION 1126 #define IDC_BUTTON_GETDEMREGION 1126
#define IDB_BITMAP23 1132
#define IDB_BITMAP24 1133
#define IDB_BITMAP25 1134
#define IDB_BITMAP26 1135
#define IDB_BITMAP27 1137
#define IDB_BITMAP28 1138
#define IDB_BITMAP29 1139
#define IDB_BITMAP30 1140
#define IDB_BITMAP31 1141
#define IDB_BITMAP32 1142
#define IDB_BITMAP33 1143
#define IDB_BITMAP34 1144
#define IDB_BITMAP35 1145
#define IDB_BITMAP36 1146
#define IDB_BITMAP37 1147
#define IDB_BITMAP38 1148
#define IDB_BITMAP39 1149
#define IDB_BITMAP40 1150
#define IDB_BITMAP41 1154
#define IDT_GIS_CTRL_BUTTON1 1231 #define IDT_GIS_CTRL_BUTTON1 1231
#define IDT_GIS_CTRL_BUTTON2 1232 #define IDT_GIS_CTRL_BUTTON2 1232
#define IDT_GIS_CTRL_BUTTON3 1233 #define IDT_GIS_CTRL_BUTTON3 1233
@ -338,7 +375,7 @@
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 1078 #define _APS_NEXT_RESOURCE_VALUE 1169
#define _APS_NEXT_COMMAND_VALUE 32911 #define _APS_NEXT_COMMAND_VALUE 32911
#define _APS_NEXT_CONTROL_VALUE 1050 #define _APS_NEXT_CONTROL_VALUE 1050
#define _APS_NEXT_SYMED_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 1000

Loading…
Cancel
Save