public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
{
打开file_Click(sender, e);
}
private void 关闭CToolStripMenuItem_Click(object sender, EventArgs e)
{
关闭file_Click(sender, e);
}
private void 关闭file_Click(object sender, EventArgs e)
{
this.Close();
}
private void 打开file_Click(object sender, EventArgs e)
{
openFileDialog1.Title = " 打开对话框,选择文件格式:shp格式,jpg格式或bmp格式!";
openFileDialog1.Filter = "(*.jpg)|*.jpg|(*.bmp)|*.bmp|(*.shp)|*.shp|(*.mxd)|*.mxd";
openFileDialog1.ShowDialog();
int commapos = openFileDialog1.FileName.IndexOf('.');
string filter = openFileDialog1.FileName.Substring(commapos, openFileDialog1.FileName.Length - commapos);
string filter1 = filter.ToLower();
if (filter1 == ".jpg"||filter1==".bmp")
{
IRasterLayer prasterlayer;
prasterlayer = new RasterLayer();
prasterlayer.CreateFromFilePath(openFileDialog1.FileName);
axMapControl1.AddLayer(prasterlayer);
axMapControl1.Refresh();
}
if (filter1 == ".shp")
{
string fname;
fname = openFileDialog1.FileName.Substring(Environment.CurrentDirectory.Length, openFileDialog1.FileName.Length - Environment.CurrentDirectory.Length - 4);
IWorkspaceFactory pwf;
IFeatureWorkspace pfw;
IFeatureClass pfc;
IFeatureLayer play;
pwf = new ShapefileWorkspaceFactory();
pfw = pwf.OpenFromFile(Environment.CurrentDirectory, 0) as IFeatureWorkspace;
pfc = pfw.OpenFeatureClass(fname);
play = new FeatureLayer();
play.FeatureClass = pfc;
axMapControl1.AddLayer(play);
axMapControl1.Refresh();
}
if (filter1 == ".mxd")
{
string fname;
fname=openFileDialog1.FileName;
if (axMapControl1.CheckMxFile(fname))
{
axMapControl1.LoadMxFile(fname,null,null);
}
}
}
private void 放大_Click(object sender, EventArgs e)
{
axMapControl1.MousePointer =ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerZoomIn;
str = "fangda";
}
private void 缩小_Click(object sender, EventArgs e)
{
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerZoomOut;
str = "suoxiao";
}
private void 漫游_Click(object sender, EventArgs e)
{
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerPan;
str = "manyou";
}
private void 显示全图_Click(object sender, EventArgs e)
{
axMapControl1.Extent = axMapControl1.FullExtent;
}
private void 清空图层_Click(object sender, EventArgs e)
{
axMapControl1.ClearLayers();
}
private void 拉框放大_Click(object sender, EventArgs e)
{
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerPageZoomIn;
str = "lakuangfangda";
}
private void 拉框缩小_Click(object sender, EventArgs e)
{
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerPageZoomOut;
str = "lakuangsuoxiao";
}
private void 指针_Click(object sender, EventArgs e)
{
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerCrosshair;
str = "指针";
}
private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
{
switch (str)
{
case "fangda":
IEnvelope zoomin;
zoomin = axMapControl1.Extent;
zoomin.Expand(0.5, 0.5, true);
axMapControl1.Extent = zoomin;
axMapControl1.Refresh();
break;
case "suoxiao":
IEnvelope zoomout;
zoomout = axMapControl1.Extent;
zoomout.Expand(1.5, 1.5, true);
axMapControl1.Extent = zoomout;
axMapControl1.Refresh();
break;
case "lakuangfangda":
axMapControl1.Extent = axMapControl1.TrackRectangle();
break;
case "lakuangsuoxiao":
IEnvelope trackExtent, currentExtent, NewIEN = null;
currentExtent = axMapControl1.Extent;
trackExtent = axMapControl1.TrackRectangle();
double dXmin = 0, dYmin = 0, dXmax = 0, dYmax = 0, dHeight = 0, dWidth = 0;
dWidth = currentExtent.Width * (currentExtent.Width / trackExtent.Width);
dHeight = currentExtent.Height * (currentExtent.Height / trackExtent.Height);
dXmin = currentExtent.XMin - ((trackExtent.XMin - currentExtent.XMin) * (currentExtent.Width / trackExtent.Width));
dYmin = currentExtent.YMin - ((trackExtent.YMin - currentExtent.YMin) * (currentExtent.Height / trackExtent.Height));
dXmax = dXmin + dWidth;
dYmax = dYmin + dHeight;
NewIEN = new EnvelopeClass();
NewIEN.PutCoords(dXmin, dYmin, dXmax, dYmax);
axMapControl1.Extent = NewIEN;
break;
case "manyou":
axMapControl1.Pan();
break;
case "zhizhen":
break;
}
}
private void Form1_Load(object sender, EventArgs e)
{
axTOCControl1.SetBuddyControl(axMapControl1);
}
}