diff --git a/GISControlDlg.rc b/GISControlDlg.rc
index 6243423..66c11fa 100644
--- a/GISControlDlg.rc
+++ b/GISControlDlg.rc
@@ -366,6 +366,21 @@ BEGIN
PUSHBUTTON "继续编辑",IDC_BTN_CONTINUEEDIT,69,10,50,14
END
+IDD_DIALOG_ZONESETTING DIALOGEX 0, 0, 152, 106
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "区域设置"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ PUSHBUTTON "取消",IDCANCEL,78,81,50,14
+ LTEXT "区域类型:",IDC_STATIC,15,14,65,13
+ COMBOBOX IDC_COMBO_ZONETYPE,62,12,75,63,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ LTEXT "限飞高度:",IDC_STATIC,15,56,63,13
+ EDITTEXT IDC_EDIT_HEIGHT,62,51,75,20,ES_CENTER | ES_AUTOHSCROLL
+ DEFPUSHBUTTON "保存",IDOK,24,81,50,14
+ LTEXT "区域编号:",IDC_STATIC,15,32,66,13
+ COMBOBOX IDC_COMBO_ZONEID,62,31,75,63,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+END
+
/////////////////////////////////////////////////////////////////////////////
//
@@ -481,6 +496,14 @@ BEGIN
TOPMARGIN, 3
BOTTOMMARGIN, 29
END
+
+ IDD_DIALOG_ZONESETTING, DIALOG
+ BEGIN
+ LEFTMARGIN, 3
+ RIGHTMARGIN, 148
+ TOPMARGIN, 3
+ BOTTOMMARGIN, 101
+ END
END
#endif // APSTUDIO_INVOKED
@@ -575,6 +598,26 @@ BEGIN
MENUITEM "修改航点", ID_EDIT_LINE
MENUITEM "保存编辑", ID_EDIT_SAVE
END
+ POPUP "限制区"
+ BEGIN
+ MENUITEM "限制区设计", IDM_DESIGN_ZONE
+ MENUITEM SEPARATOR
+ MENUITEM "限制区导入", IDM_IMPORT_ZONE
+ MENUITEM SEPARATOR
+ MENUITEM "限制区装订", IDM_BIND_ZONE
+ MENUITEM SEPARATOR
+ MENUITEM "显示限飞区1", IDM_SHOW_RESTRICTEDZONE1
+ MENUITEM "显示限飞区2", IDM_SHOW_RESTRICTEDZONE2
+ MENUITEM "显示限飞区3", IDM_SHOW_RESTRICTEDZONE3
+ MENUITEM "显示限飞区4", IDM_SHOW_RESTRICTEDZONE4
+ MENUITEM "显示限飞区5", IDM_SHOW_RESTRICTEDZONE5
+ MENUITEM SEPARATOR
+ MENUITEM "显示禁飞区1", IDM_SHOW_NOFLYZONE1
+ MENUITEM "显示禁飞区2", IDM_SHOW_NOFLYZONE2
+ MENUITEM "显示禁飞区3", IDM_SHOW_NOFLYZONE3
+ MENUITEM "显示禁飞区4", IDM_SHOW_NOFLYZONE4
+ MENUITEM "显示禁飞区5", IDM_SHOW_NOFLYZONE5
+ END
END
END
diff --git a/GISControlDlg.vcxproj b/GISControlDlg.vcxproj
index 1f98ed3..28b2edf 100644
--- a/GISControlDlg.vcxproj
+++ b/GISControlDlg.vcxproj
@@ -281,6 +281,7 @@
%(PreprocessorDefinitions)
+
%(PreprocessorDefinitions)
%(PreprocessorDefinitions)
@@ -404,6 +405,7 @@
+
diff --git a/GISControlDlg.vcxproj.filters b/GISControlDlg.vcxproj.filters
index 47e299c..00a224c 100644
--- a/GISControlDlg.vcxproj.filters
+++ b/GISControlDlg.vcxproj.filters
@@ -180,6 +180,9 @@
Source Files
+
+ Source Files
+
@@ -421,5 +424,8 @@
Header Files
+
+ Header Files
+
\ No newline at end of file
diff --git a/GISDlg.cpp b/GISDlg.cpp
index 8686b85..0183437 100644
--- a/GISDlg.cpp
+++ b/GISDlg.cpp
@@ -20,6 +20,8 @@
#include "vectortoraster.h"
#include "SaveLineEditSetting.h"
#include "ModifyLinePointDlg.h"
+#include
+#include
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -182,6 +184,14 @@ CGISDlg::CGISDlg(CWnd* pParent /*=NULL*/)
memset(m_pDesignLineStruct, 0, sizeof(PtStruct)*m_lineMaxPointNum); //初始化
m_designLinePointNum = 0; //当前航点个数
+ /*******************************新增限制区********************************/
+ //绘制禁飞区、限飞区
+ std::fill(noFlyZoneLayersID, noFlyZoneLayersID + 5, -1);//禁飞区
+ std::fill(restrictedZoneLayersID, restrictedZoneLayersID + 5, -1);//限飞区
+ bDrawRestrictedZone = false;
+ bShowZone = false;
+ m_tempZoneLayerID = -1;
+ /**********************************************************************************/
//航线标绘图层ID初始化
m_designLineLayerID = -1;
m_designLineLayerID2 = -1;
@@ -581,6 +591,24 @@ BEGIN_MESSAGE_MAP(CGISDlg, CBCGPDialog)
//空投航线
ON_COMMAND(IDM_SHOW_LINE14, &CGISDlg::OnShowLine14)
ON_UPDATE_COMMAND_UI(IDM_SHOW_LINE14, &CGISDlg::OnUpdateShowLine14)
+ /****************************限制区************************************/
+ ON_COMMAND(IDM_DESIGN_ZONE,OnDesignZone)
+ ON_COMMAND(IDM_IMPORT_ZONE,OnImportZone)
+ ON_COMMAND(IDM_SHOW_RESTRICTEDZONE1,OnShowRestrictedZone1)
+ ON_COMMAND(IDM_SHOW_RESTRICTEDZONE2,OnShowRestrictedZone2)
+ ON_COMMAND(IDM_SHOW_RESTRICTEDZONE3,OnShowRestrictedZone3)
+ ON_COMMAND(IDM_SHOW_RESTRICTEDZONE4,OnShowRestrictedZone4)
+ ON_COMMAND(IDM_SHOW_RESTRICTEDZONE5,OnShowRestrictedZone5)
+
+ ON_COMMAND(IDM_SHOW_NOFLYZONE1,OnShowNoFlyZone1)
+ ON_COMMAND(IDM_SHOW_NOFLYZONE2,OnShowNoFlyZone2)
+ ON_COMMAND(IDM_SHOW_NOFLYZONE3,OnShowNoFlyZone3)
+ ON_COMMAND(IDM_SHOW_NOFLYZONE4,OnShowNoFlyZone4)
+ ON_COMMAND(IDM_SHOW_NOFLYZONE5,OnShowNoFlyZone5)
+
+ ON_COMMAND(IDM_BIND_ZONE,OnBindZone)
+
+
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
@@ -661,6 +689,7 @@ BOOL CGISDlg::OnInitDialog()
m_DlgDemAlt.Create(IDD_DIALOG_DEMALT,this);
+
//多媒体定时器
timeBeginPeriod(0);
TimerID_Draw = timeSetEvent(500, 1, (LPTIMECALLBACK)CatchMTimerDraw, (DWORD)NULL, TIME_PERIODIC);
@@ -1286,28 +1315,14 @@ void CGISDlg::OnShowRMenu()
//显示快捷菜单
CMenu menu;
- //CMenu* pMenu = GetMenu();
- //if (pMenu != NULL)
- //{
-/*
- CMenu* pSubMenu = menu.GetSubMenu(0);
- if (pSubMenu != NULL)
- {
- CMenu* pSubMenu2 = pSubMenu->GetSubMenu(0);
- if (pSubMenu2 != NULL)
- {
- pSubMenu2->DeleteMenu(IDM_SHOW_LINE14, MF_BYCOMMAND);
- }
- }*/
- //}
-
-
POINT pt;
GetCursorPos( &pt );
//当处于回放模式时,设置、导引操作、航线装订子菜单都先灰色
menu.LoadMenu(IDR_MENU2);
+ //设置限制区勾选状态
+ SetMenuZoneCheck(menu);
//航线1
if (m_pHaveDrawLineFlag[0])
@@ -1895,6 +1910,36 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
//设置点的经度、纬度
m_pHZDistanceDlg->SetPtCoordinate(dX, dY);
}
+ /************************************限飞区*************************************/
+ if(bDrawRestrictedZone && (Button == 1))
+ {
+ //像素坐标转换地理坐标
+ m_map.PixelToProj(x,y, &dX, &dY);
+ if (!bShowZone)
+ {
+ firstZonePoint[0] = dX;
+ firstZonePoint[1] = dY;
+ bShowZone = true;
+ return;
+ }
+ if(bShowZone)
+ {
+ double xPoints[5];
+ double yPoints[5];
+ double endPoint[2] = {dX,dY};
+ ComputeRectanglePoints(firstZonePoint,endPoint,xPoints,yPoints);
+ DrawRestrictedZone(m_tempZoneLayerID,xPoints,yPoints,5,0);
+
+ m_map.Redraw();
+ bShowZone = false;
+ bDrawRestrictedZone = false;
+
+ ShowSaveZoneDlg(xPoints,yPoints);
+ }
+
+ return;
+ }
+
/***************************************多点测距 by Wu 2023.10.16*****************************************/
if (m_bPolylineMeasure && (Button == 1))
@@ -2629,6 +2674,21 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
m_pLonLatDlg->SetLonLatInfo(dX, dY);
}
+ //实时绘制限飞区
+ if (bShowZone)
+ {
+ double dX = 0;
+ double dY = 0;
+ m_map.PixelToProj(x,y, &dX, &dY);
+
+ double xPoints[5];
+ double yPoints[5];
+ double endPoint[2] = {dX,dY};
+ ComputeRectanglePoints(firstZonePoint,endPoint,xPoints,yPoints);
+ DrawRestrictedZone(noFlyZoneLayersID[0],xPoints,yPoints,5,1);
+ m_map.Redraw();
+ }
+
/*****************************************by Wu 2023.09.14*******************************************/
//编辑航线时
@@ -4871,6 +4931,33 @@ void CGISDlg::OnShowGivenLine(const CString strLineFileName)
BCGPMessageBox("航线号不正确!");
return;
}
+
+ int ch = lineDataGroup.linePts[lineDataGroup.pointNum-1].ch1;
+ if (ch==0x0C) //限飞区
+ {
+ //ClearZoneLayer(restrictedZoneLayersID[lineDataGroup.lineID-1]);
+ double xPoints[5];
+ double yPoints[5];
+ for (int i = 0;i<5;++i)
+ {
+ xPoints[i] = lineDataGroup.linePts[i].dX;
+ yPoints[i] = lineDataGroup.linePts[i].dY;
+ }
+ DrawRestrictedZone(restrictedZoneLayersID[lineDataGroup.lineID-1],xPoints,yPoints,5,0);
+ return;
+ }
+ else if(ch == 0x0D) //禁飞区
+ {
+ double xPoints[5];
+ double yPoints[5];
+ for (int i = 0;i<5;++i)
+ {
+ xPoints[i] = lineDataGroup.linePts[i].dX;
+ yPoints[i] = lineDataGroup.linePts[i].dY;
+ }
+ DrawRestrictedZone(noFlyZoneLayersID[lineDataGroup.lineID-1],xPoints,yPoints,5,1);
+ return;
+ }
/*******************by Wu 2023.09.14****************************/
m_ShowedLineDataList[lineDataGroup.lineID] = lineDataGroup;
@@ -7583,6 +7670,383 @@ void CGISDlg::EndPolylineMessure()
return;
}
+//显示保存限飞区对话框
+void CGISDlg::ShowSaveZoneDlg(double* xPoints,double* yPoints)
+{
+ CSaveZoneDlg saveZoneDlg;
+ if (IDOK == saveZoneDlg.DoModal())
+ {
+ int zoneType = saveZoneDlg.GetZoneType();
+ int zoneID = saveZoneDlg.GetZoneID();
+ double height = 0.0;
+ CString str;
+
+ CString dirName = "";
+ if (zoneType == 0)//限飞区
+ {
+ //CreateDirectory("限飞区");
+ dirName = _T("限飞区\\");
+ height = saveZoneDlg.GetHeight();
+ }
+ else if(zoneType == 1)
+ {
+ //CreateDirectory("禁飞区");
+ dirName = _T("禁飞区\\");
+ }
+
+
+ //重新保存回收航线
+ CString filename;
+ CString strRouteFileDir = GetSoftwareCurrentDirectory() + _T("\\Route\\") + dirName ;
+
+ CreateDirectory(strRouteFileDir);
+
+ TCHAR s[10000];
+ s[0]=0;
+ CFileDialog dlg(FALSE, _T(".txt"), _T("*.txt"));
+ dlg.m_ofn.lpstrTitle=_T("保存文件");
+ dlg.m_ofn.lpstrFile=s;
+ dlg.m_ofn.nMaxFile=sizeof(s)/sizeof(TCHAR);
+
+ TCHAR filter[500]=_T("航线文件(*.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();
+ //保存文件
+ FILE* fp = fopen(filename,"w");
+ fprintf(fp,"%d, 0, %lf, %lf, %.2lf, 0, 00, 03\n", zoneID, 0.0, 0.0, 0.0);
+ fprintf(fp,"%d, 1, %lf, %lf, %.2lf, 0, 00, 03\n", zoneID, xPoints[0], yPoints[0], height);
+ fprintf(fp,"%d, 2, %lf, %lf, %.2lf, 0, 00, 03\n", zoneID, xPoints[1], yPoints[1], height);
+ fprintf(fp,"%d, 3, %lf, %lf, %.2lf, 0, 00, 03\n", zoneID, xPoints[2], yPoints[2], height);
+ if (zoneType==0)
+ {
+ fprintf(fp,"%d, 4, %lf, %lf, %.2lf, 0, 0C, 01\n", zoneID, xPoints[3], yPoints[3], height);
+ }
+ else if (zoneType==1)
+ {
+ fprintf(fp,"%d, 4, %lf, %lf, %.2lf, 0, 0D, 01\n", zoneID, xPoints[3], yPoints[3], height);
+ }
+
+ fclose(fp);
+ }
+ //显示区域
+ OnShowGivenLine(filename);
+ }
+ m_map.RemoveLayer(m_tempZoneLayerID);
+ m_map.Redraw();
+
+}
+
+/*根据对角线两点坐标计算矩形的顶点
+*point1:起点坐标
+*point2:对角线另一点坐标
+*xPoints:矩形顶点的x坐标
+*yPoints:矩形顶点的y坐标
+*/
+void CGISDlg::ComputeRectanglePoints(double* point1,double* point2,double* xPoints,double* yPoints)
+{
+ if((point1[0]point2[1]) || (point1[0]>point1[1] && point1[1]point2[0] && point1[1]>point2[1]))
+ {
+ xPoints[0] = point1[0];
+ xPoints[1] = point1[0];
+ xPoints[2] = point2[0];
+ xPoints[3] = point2[0];
+ xPoints[4] = point1[0];
+
+ yPoints[0] = point1[1];
+ yPoints[1] = point2[1];
+ yPoints[2] = point2[1];
+ yPoints[3] = point1[1];
+ yPoints[4] = point1[1];
+ }
+};
+
+//绘制限飞区
+void CGISDlg::DrawRestrictedZone(long& layerID,double* xPoints,double* yPoints,int nPoints,int type)
+{
+ if (layerID>=0)
+ {
+ m_map.RemoveLayer(layerID);
+ layerID = -1;
+ }
+
+ mapWindow::IShapePtr shapePtr;
+ shapePtr.CreateInstance("MapWinGIS.Shape");
+ //创建面矢量shapfile
+ shapePtr->Create(mapWindow::SHP_POLYGON);
+ CreateEmptyShapfile(layerID,2,RGB(255,0,0));
+ for (long i=0; ix = xPoints[i];
+ //纬度
+ pintPtr->y = yPoints[i];
+ shapePtr->InsertPoint(pintPtr, &i);
+
+ //插入面矢量
+ (m_map.GetShapefile(layerID)).EditInsertShape(shapePtr, &i);
+ }
+ mapWindow::IShapeDrawingOptionsPtr pShapeDrawingOption;
+ pShapeDrawingOption.CreateInstance("MapWinGIS.ShapeDrawingOptions");
+ if(type == 0){//限飞区黄色
+ pShapeDrawingOption->LineColor = RGB(250,173,20);
+ pShapeDrawingOption->FillColor = RGB(254,252,233);//RGB(244,206,199);
+ }else if(type==1){ //禁飞区红色
+ pShapeDrawingOption->LineColor = RGB(220,38,38);
+ pShapeDrawingOption->FillColor = RGB(254,243,243);//RGB(244,206,199);
+ }
+ pShapeDrawingOption->LineWidth = 2;
+ pShapeDrawingOption->FillTransparency = 180; //透明度
+ (m_map.GetShapefile(layerID)).SetDefaultDrawingOptions(pShapeDrawingOption);
+};
+
+//清除限飞区
+void CGISDlg::ClearZoneLayer(long& zoneID)
+{
+ if (zoneID>=0)
+ {
+ m_map.RemoveLayer(zoneID);
+ zoneID = -1;
+ }
+}
+
+void CGISDlg::arrayDouble2Variant(double *pArray,int iDimlength,VARIANT &vaArray)
+{
+ SAFEARRAY *psa;
+ SAFEARRAYBOUND rgsabound[1];
+ rgsabound[0].lLbound=0;
+ rgsabound[0].cElements=iDimlength;
+ psa = SafeArrayCreate(VT_R8,1,rgsabound);
+ long lIndex[1];
+ for (int k=0; k < iDimlength; k++)
+ {
+ lIndex[0]=k;
+ SafeArrayPutElement(psa,lIndex,&pArray[k]);
+ }
+ vaArray.vt = VT_ARRAY|VT_R8;
+ vaArray.parray= psa;
+}
+
+
+/**************************************************************************************************/
+//设计限制区
+void CGISDlg::OnDesignZone(){
+ m_map.SetCursorMode(mapWindow::cmNone);
+ bDrawRestrictedZone = true;
+}
+
+void CGISDlg::OnImportZone(){
+ //未加载地图,返回
+ if (!m_bHaveAddMap)
+ {
+ return;
+ }
+
+ //弹出文件对话框
+ CFileDialog dlg(true, ".txt","*.txt",OFN_HIDEREADONLY, "限制区文件(*.txt)|*.txt|", NULL);
+
+ if (dlg.DoModal() == IDOK)
+ {
+ //读取航路文件,并标绘出来
+ OnShowGivenLine(dlg.GetPathName());
+ }
+}
+
+void CGISDlg::SetZoneState(long& zoneLayerID)
+{
+ //已经标绘,清除航线
+ if (zoneLayerID>=0 )
+ {
+ //清除标绘的航线
+ ClearZoneLayer(zoneLayerID);
+ //刷新
+ m_map.Redraw();
+ }
+ else
+ {
+
+ TCHAR filter[500]=_T("限制区文件(*.txt)\0*.txt\0)");
+
+ CFileDialog LineRouteDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter, NULL);
+ //LineRouteDlg.m_ofn.lpstrInitialDir = strRouteFileDir;
+ LineRouteDlg.m_ofn.lpstrFilter="txt(*.txt)\0*.txt";
+ LineRouteDlg.m_ofn.lpstrTitle = "选择显示最新生成的限制区";
+ if (LineRouteDlg.DoModal() == IDOK) //用户单击OK按钮中止对话框的返回值
+ {
+ CString str = LineRouteDlg.GetPathName(); //获取文件路径名
+ //OnShowGivenLine(GetFlyLineName(lineID));
+ OnShowGivenLine(str);
+ }
+ }
+}
+
+void CGISDlg::SetMenuZoneCheck(CMenu& menu){
+ if (restrictedZoneLayersID[0]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE1, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE1, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (restrictedZoneLayersID[1]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE2, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE2, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (restrictedZoneLayersID[2]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE3, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE3, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (restrictedZoneLayersID[3]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE4, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE4, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (restrictedZoneLayersID[4]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE5, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_RESTRICTEDZONE5, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (noFlyZoneLayersID[0]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE1, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE1, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (noFlyZoneLayersID[1]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE2, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE2, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (noFlyZoneLayersID[2]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE3, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE3, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (noFlyZoneLayersID[3]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE4, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE4, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+ if (noFlyZoneLayersID[4]>=0)
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE5, MF_BYCOMMAND | MF_CHECKED );
+ }
+ else
+ {
+ menu.CheckMenuItem( IDM_SHOW_NOFLYZONE5, MF_BYCOMMAND | MF_UNCHECKED );
+ }
+
+}
+
+void CGISDlg::OnShowRestrictedZone1(){
+ SetZoneState(restrictedZoneLayersID[0]);
+}
+
+void CGISDlg::OnShowRestrictedZone2(){
+ SetZoneState(restrictedZoneLayersID[1]);
+}
+
+void CGISDlg::OnShowRestrictedZone3(){
+ SetZoneState(restrictedZoneLayersID[2]);
+}
+
+void CGISDlg::OnShowRestrictedZone4(){
+ SetZoneState(restrictedZoneLayersID[3]);
+}
+
+void CGISDlg::OnShowRestrictedZone5(){
+ SetZoneState(restrictedZoneLayersID[4]);
+}
+
+void CGISDlg::OnShowNoFlyZone1(){
+ SetZoneState(noFlyZoneLayersID[0]);
+}
+
+void CGISDlg::OnShowNoFlyZone2(){
+ SetZoneState(noFlyZoneLayersID[1]);
+}
+
+void CGISDlg::OnShowNoFlyZone3(){
+ SetZoneState(noFlyZoneLayersID[2]);
+}
+
+void CGISDlg::OnShowNoFlyZone4(){
+ SetZoneState(noFlyZoneLayersID[3]);
+}
+
+void CGISDlg::OnShowNoFlyZone5(){
+ SetZoneState(noFlyZoneLayersID[4]);
+}
+
+void CGISDlg::OnBindZone(){
+ m_struMapOut.cmd=MapCmd_BindZone;
+ ::SendMessage(GetParent()->GetSafeHwnd(),MESSAGE_B8MAP,0,0);
+}
+
+
+
+
+
+
+
+
+
+
diff --git a/GISDlg.h b/GISDlg.h
index becf507..8c49d9b 100644
--- a/GISDlg.h
+++ b/GISDlg.h
@@ -36,6 +36,7 @@
#include