C#窗体使用AE读取shp
2014-02-25 13:59
375 查看
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);
}
}
{
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);
}
}
相关文章推荐
- c#中的接口
- CRC-16校验C#代码
- C# list installed softwares
- P次方数-c#求解-英雄会在线编程题目
- P次方数-c#求解-英雄会在线编程题目
- C# 文本框只能输入数字
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 树形选择项目的标准例子
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 主细表事务处理的标准例子
- c#数字图像处理的3种方法示例分享
- C#删除程序自身【总结】
- SmartWeatherAPI_Lite_WebAPI C# 获取key加密
- [转载]c# winform 获取当前程序运行根目录
- c#字符串使用正则表达式示例
- c# 遇到的问题,求解?
- 动态执行c# 脚本片段
- C#读取EXCEL转化为DataSet
- chm帮助文档制作及C#调用
- (转)C#静态构造函数
- C#数字图像处理的3种方法
- C# 元数据学习