AE基础(4)画几何图形

  1 using ESRI.ArcGIS.Display;
  2 using ESRI.ArcGIS.Geometry;
  3 using System;
  4 using System.Collections.Generic;
  5 using System.ComponentModel;
  6 using System.Data;
  7 using System.Drawing;
  8 using System.Linq;
  9 using System.Text;
 10 using System.Threading.Tasks;
 11 using System.Windows.Forms;
 12 
 13 namespace Ch02Ex05
 14 {
 15     public partial class Form1 : Form
 16     {
 17         public Form1()
 18         {
 19             InitializeComponent();
 20         }
 21         int flag = 0;
 22         private void btnDrawLine_Click(object sender, EventArgs e)
 23         {
 24             flag = 1;//画线对象
 25         }
 26 
 27         private void btnDrawCircle_Click(object sender, EventArgs e)
 28         {
 29             flag = 2;//画圆对象
 30         }
 31 
 32         private void btnDrawRect_Click(object sender, EventArgs e)
 33         {
 34             flag = 3;//画矩形对象
 35         }
 36 
 37         private void btnDrawPolygon_Click(object sender, EventArgs e)
 38         {
 39             flag = 4;//画面对象
 40         }
 41 
 42         private void btnDrawText_Click(object sender, EventArgs e)
 43         {
 44             flag = 5;//画文本对象
 45         }
 46         private void DrawMapText(IGeometry geometry)
 47         {
 48             IRgbColor rgbColor = new RgbColor();
 49             rgbColor.Red = 225;
 50             rgbColor.Blue = 0;
 51             rgbColor.Green = 0;
 52             ITextSymbol txtSymbol = new TextSymbol();
 53             txtSymbol.Color = rgbColor;
 54             object symbol = txtSymbol;
 55             axMapControl1.DrawText(geometry, "测试文本", ref symbol);
 56         }
 57         private void DrawMapShape(IGeometry pGeo)
 58         {
 59             IRgbColor rgbColor = new RgbColor();
 60             rgbColor.Red = 255;
 61             rgbColor.Blue = 0;
 62             rgbColor.Green = 255;
 63             object symbol = null;
 64             if (pGeo.GeometryType == esriGeometryType.esriGeometryPolyline)
 65             {
 66                 ISimpleLineSymbol simpleLine = new SimpleLineSymbol();
 67                 simpleLine.Color = rgbColor;
 68                 simpleLine.Width = 5;
 69                 symbol = simpleLine;
 70             }
 71             else
 72             {
 73                 ISimpleFillSymbol fillSymbol = new SimpleFillSymbol();
 74                 fillSymbol.Color = rgbColor;
 75                 symbol = fillSymbol;
 76             }
 77             axMapControl1.DrawShape(pGeo, ref symbol);
 78         }
 79 
 80         private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
 81         {
 82             IGeometry geometry = null;
 83             if (flag == 1)
 84             {
 85                 geometry = axMapControl1.TrackLine();
 86             }
 87             else if (flag == 2)
 88             {
 89                 geometry = axMapControl1.TrackCircle();
 90             }
 91             else  if (flag == 3)
 92             {
 93                 geometry = axMapControl1.TrackRectangle();
 94             }
 95             else if (flag == 4)
 96             {
 97                 geometry = axMapControl1.TrackPolygon();
 98             }
 99             else if (flag == 5)
100             {
101                 IPoint point = new ESRI.ArcGIS.Geometry.Point();
102                 point.X = e.mapX;
103                 point.Y = e.mapY;
104                 geometry = point as IGeometry;
105             }
106             if (flag == 5)
107             {
108                 DrawMapText(geometry);
109             }
110             if (flag >= 1 && flag <= 4)
111             {
112                 DrawMapShape(geometry);
113             }
114         }
115     }
116 }
View Code
原文地址:https://www.cnblogs.com/rockman/p/3322692.html