using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
namespace AEKF3_huizhituxing
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int flag = 0;
private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
{
axMapControl1.MousePointer = esriControlsMousePointer.esriPointerCrosshair;
IGeometry geometry = null;
if (flag == 1)
{
geometry = axMapControl1.TrackLine();
}
else if (flag == 2)
{
geometry = axMapControl1.TrackCircle();
}
else if (flag == 3)
{
geometry = axMapControl1.TrackRectangle();
}
else if (flag == 4)
{
geometry = axMapControl1.TrackPolygon();
}
else if (flag == 5)
{
IPoint point = new PointClass();
point.X = e.x;
point.Y = e.y;
geometry=point as IGeometry;
}
if (flag >= 1 && flag <= 4)
{
drawMapShape(geometry);
}
else if (flag == 5)
{
drawMapText(geometry);
}
axMapControl1.Refresh(esriViewDrawPhase.esriViewGeography,null,null);
}
//画线对象
private void button1_Click(object sender, EventArgs e)
{
flag = 1;
}
//画圆对象
private void button2_Click(object sender, EventArgs e)
{
flag = 2;
}
//画矩形对象
private void button3_Click(object sender, EventArgs e)
{
flag = 3;
}
//画面对象
private void button4_Click(object sender, EventArgs e)
{
flag = 4;
}
//画文本对象
private void button5_Click(object sender, EventArgs e)
{
flag = 5;
}
private void drawMapText(IGeometry geometry)
{
IRgbColor color = new RgbColorClass();
color.Red = 255;
color.Blue = 0;
color.Green = 0;
ITextSymbol txtSystem = new TextSymbolClass();
txtSystem.Color = color;
//txtSystem.color="测试drawtext";
object symbol = txtSystem;
axMapControl1.DrawText(geometry,"测试DrawText",ref symbol);
}
private void drawMapShape(IGeometry pGeom)
{
IRgbColor pcolor = new RgbColorClass();
pcolor.Red = 255;
pcolor.Green = 255;
pcolor.Blue = 0;
object symbol = null;
if (pGeom.GeometryType == esriGeometryType.esriGeometryPolyline)
{
ISimpleLineSymbol simpleLineSymbol;
simpleLineSymbol = new SimpleLineSymbolClass();
simpleLineSymbol.Color = pcolor;
simpleLineSymbol.Width = 5;
symbol = simpleLineSymbol;
}
else
{
ISimpleFillSymbol simpleFillSymbol;
simpleFillSymbol = new SimpleFillSymbolClass();
simpleFillSymbol.Color = pcolor;
symbol = simpleFillSymbol;
}
axMapControl1.DrawShape(pGeom,ref symbol);
}
}
}