/// <summary> /// 框选目标 /// </summary> public void Select() { ReleaseTool(); currentTool = new SelectElementEx(gmapControl, mapLogic); currentTool.CommondExecutedEvent += CommondExecutedEvent; currentTool.RunCommond(); }
/// <summary> /// 测量 /// </summary> /// <param name="measureType">测量类型,有距离、面积和方位角</param> public void Measure(MeasureTypeEnum measureType) { ReleaseTool(); // 执行命令前,先释放上一次的工具命令 switch (measureType) { case MeasureTypeEnum.Distance: currentTool = new MeasureDistance(gmapControl); break; case MeasureTypeEnum.Area: currentTool = new MeasureArea(gmapControl); break; case MeasureTypeEnum.Angle: currentTool = new MeasureAngle(gmapControl); break; default: break; } if (currentTool != null) { currentTool.CommondExecutedEvent += CommondExecutedEvent; currentTool.RunCommond(); } }
/// <summary> /// 重置工具 /// </summary> public void ReleaseTool() { if (currentTool != null) { currentTool.ReleaseCommond(); currentTool.CommondExecutedEvent -= currentTool_CommondExecutedEvent; currentTool.Dispose(); currentTool = null; } }
/// <summary> /// 选择图元 /// </summary> public void Select() { ReleaseTool(); currentTool = new SelectElements(mapControl); if (currentTool != null) { currentTool.RunCommond();//执行命令 currentTool.CommondExecutedEvent += new EventHandler <Core.Model.MessageEventArgs>(currentTool_CommondExecutedEvent); } }
/// <summary> /// 释放工具 /// </summary> public void ReleaseTool() { if (currentTool != null) { mapControl.setMgsEditFlag(0); currentTool.ReleaseCommond(); currentTool.CommondExecutedEvent -= CommondExecutedEvent; currentTool.Dispose(); currentTool = null; } }
/// <summary> /// 编辑图元 /// </summary> /// <param name="element">图元</param> public void EditElement(Core.Interface.IMFElement element) { ReleaseTool(); switch (element.ElementType) { case Core.Model.ElementTypeEnum.Point: currentTool = new EditPoint(mapControl, element); break; } if (currentTool != null) { currentTool.CommondExecutedEvent += CommondExecutedEvent; currentTool.RunCommond(); } }
/// <summary> /// 画图形 /// </summary> /// <param name="type">图形类型</param> public void DrawGraphic(ElementTypeEnum type) { ReleaseTool(); switch (type) { case Core.Model.ElementTypeEnum.Model3D: break; case Core.Model.ElementTypeEnum.Point: currentTool = new DrawPoint(mapControl); break; case Core.Model.ElementTypeEnum.Line: currentTool = new DrawLine(mapControl); break; case Core.Model.ElementTypeEnum.Polygon: currentTool = new DrawPolygon(mapControl); break; case Core.Model.ElementTypeEnum.Circle: currentTool = new DrawCircle(mapControl); break; case Core.Model.ElementTypeEnum.Picture: break; case Core.Model.ElementTypeEnum.Rectangle: currentTool = new DrawRectangle(mapControl); break; case Core.Model.ElementTypeEnum.Text: currentTool = new DrawText(mapControl); break; case Core.Model.ElementTypeEnum.Other: break; } if (currentTool != null) { (currentTool as IMFDraw).MapLogic = mapLogic; currentTool.CommondExecutedEvent += currentTool_CommondExecutedEvent; currentTool.RunCommond(); } }
/// <summary> /// 选择 /// </summary> public void Select() { if (currentTool != null) { currentTool.ReleaseCommond();//重置工具 } string curPath = ""; if (System.IO.File.Exists(curPath))//加载鼠标样式 { mapControl.loadMouseCur(curPath); } currentTool = new SelectElement(mapControl, mapLogic); if (currentTool != null) { currentTool.RunCommond(); currentTool.CommondExecutedEvent += this.CommondExecutedEvent;//注册命令完成事件 } }
public void DrawGraphic(Core.Model.ElementTypeEnum type) { ReleaseTool();//释放之前的工具 switch (type) { case Core.Model.ElementTypeEnum.Point: //绘制点 break; case Core.Model.ElementTypeEnum.Line: //绘制线 currentTool = new DrawLine(mapControl); break; case Core.Model.ElementTypeEnum.Polygon: //绘制面 currentTool = new DrawPolygon(mapControl); break; case Core.Model.ElementTypeEnum.Rectangle: //绘制矩形 currentTool = new DrawRectangle(mapControl); break; case Core.Model.ElementTypeEnum.Circle: //绘制圆 currentTool = new DrawCircle(mapControl); break; case Core.Model.ElementTypeEnum.Text: //绘制文字 currentTool = new DrawText(mapControl); break; case Core.Model.ElementTypeEnum.Other: //绘制其他 break; } if (currentTool != null) { (currentTool as MapFrame.Core.Interface.IMFDraw).MapLogic = mapLogic; currentTool.CommondExecutedEvent += new EventHandler <Core.Model.MessageEventArgs>(currentTool_CommondExecutedEvent); currentTool.RunCommond();//执行命令 } }
/// <summary> /// 编辑图元 /// </summary> /// <param name="element">图元</param> public void EditElement(Core.Interface.IMFElement element) { switch (element.ElementType) { case Core.Model.ElementTypeEnum.Circle: //圆 break; case Core.Model.ElementTypeEnum.Line: //线 break; case Core.Model.ElementTypeEnum.Model3D: //模型 break; case Core.Model.ElementTypeEnum.Other: //其他 break; case Core.Model.ElementTypeEnum.Picture: //图片 break; case Core.Model.ElementTypeEnum.Point: //点 break; case Core.Model.ElementTypeEnum.Polygon: //面 currentTool = new DrawPolygon(mapControl); break; case Core.Model.ElementTypeEnum.Rectangle: //正方形 break; case Core.Model.ElementTypeEnum.Text: //文字 break; } if (currentTool != null) { currentTool.RunCommond(); currentTool.CommondExecutedEvent += currentTool_CommondExecutedEvent; } }
/// <summary> /// 绘制图形 /// </summary> /// <param name="type">图形类型</param> public void DrawGraphic(Core.Model.ElementTypeEnum type) { this.ReleaseTool();//重置工具 switch (type) { case Core.Model.ElementTypeEnum.Point: //点 break; case Core.Model.ElementTypeEnum.Line: //线 currentTool = new DrawLine(mapControl); break; case Core.Model.ElementTypeEnum.Polygon: //多边形 currentTool = new DrawPolygon(mapControl); break; case Core.Model.ElementTypeEnum.Rectangle: //矩形 currentTool = new DrawRectangle(mapControl); break; case Core.Model.ElementTypeEnum.Circle: //圆 currentTool = new DrawCircle(mapControl); break; case Core.Model.ElementTypeEnum.Text: //文字 currentTool = new DrawText(mapControl); break; case Core.Model.ElementTypeEnum.Other: //其他 break; } if (currentTool != null) { (currentTool as IMFDraw).MapLogic = mapLogic; currentTool.CommondExecutedEvent += new EventHandler <Core.Model.MessageEventArgs>(currentTool_CommondExecutedEvent); currentTool.RunCommond(); } }
public void EditElement(MapFrame.Core.Interface.IMFElement element) { //释放之前的工具 ReleaseTool(); switch (element.ElementType) { case MapFrame.Core.Model.ElementTypeEnum.Point: //编辑点 currentTool = new EditPoint(mapControl, element); break; case MapFrame.Core.Model.ElementTypeEnum.Line: //编辑线 currentTool = new EditLine(mapControl, element); break; case MapFrame.Core.Model.ElementTypeEnum.Polygon: //编辑多边形 currentTool = new EditPolygon(mapControl, element); break; case MapFrame.Core.Model.ElementTypeEnum.Circle: //编辑圆 currentTool = new EditCircle(mapControl, element); break; case MapFrame.Core.Model.ElementTypeEnum.Text: //编辑文字 currentTool = new EditText(mapControl, element); break; case MapFrame.Core.Model.ElementTypeEnum.Other: break; } if (currentTool != null) { currentTool.RunCommond();//执行命令 (currentTool as MapFrame.Core.Interface.IMFDraw).MapLogic = mapLogic; currentTool.CommondExecutedEvent += new EventHandler <Core.Model.MessageEventArgs>(currentTool_CommondExecutedEvent); } }
/// <summary> /// 测量 /// </summary> /// <param name="measureType">测量的类型</param> public void Measure(Core.Model.MeasureTypeEnum measureType) { ReleaseTool(); switch (measureType) { case Core.Model.MeasureTypeEnum.Angle: currentTool = new MeasureAngle(mapControl); break; case Core.Model.MeasureTypeEnum.Area: currentTool = new Measure(mapControl, mapLogic, "area"); break; case Core.Model.MeasureTypeEnum.Distance: currentTool = new Measure(mapControl, mapLogic, "distance"); break; } currentTool.RunCommond(); if (currentTool != null) { currentTool.CommondExecutedEvent += new EventHandler <Core.Model.MessageEventArgs>(currentTool_CommondExecutedEvent); } }
/// <summary> /// 绘制图元 /// </summary> /// <param name="type">图元类型</param> public void DrawGraphic(ElementTypeEnum type) { ReleaseTool();//释放之前的工具 switch (type) { case ElementTypeEnum.Line: //画线 currentTool = new DrawLine(gmapControl); break; case ElementTypeEnum.Polygon: //画多边形 currentTool = new DrawPolygon(gmapControl); break; case ElementTypeEnum.Rectangle: //画矩形 currentTool = new DrawRectangle(gmapControl); break; case ElementTypeEnum.Circle: //画圆 currentTool = new DrawCircle(gmapControl); break; case ElementTypeEnum.Text: //文字 currentTool = new DrawText(gmapControl); break; case ElementTypeEnum.Other: //其他 break; } if (currentTool != null) { (currentTool as IMFDraw).MapLogic = mapLogic; currentTool.CommondExecutedEvent += CommondExecutedEvent; currentTool.RunCommond();//执行命令 } }
/// <summary> /// 编辑图元 /// </summary> /// <param name="element">图元</param> public void EditElement(IMFElement element) { //释放之前的工具 ReleaseTool(); switch (element.ElementType) { case ElementTypeEnum.Point: //编辑点 currentTool = new EditPoint(gmapControl, element); break; case ElementTypeEnum.Line: //编辑线 currentTool = new EditLine(gmapControl, element); break; case ElementTypeEnum.Polygon: //编辑多边形 currentTool = new EditPolygon(gmapControl, element); break; case ElementTypeEnum.Circle: //编辑圆 currentTool = new EditCircleEx(gmapControl, element); break; case ElementTypeEnum.Text: //编辑文字 currentTool = new EditText(gmapControl, element); break; case ElementTypeEnum.Other: break; } if (currentTool != null) { currentTool.CommondExecutedEvent += this.CommondExecutedEvent; currentTool.RunCommond();//执行命令 } }