添加shapefile文件
1.新建添加shapefile文件菜单
2.添加代码如下
private void 添加shapefile文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog pOpenFileDialog = new OpenFileDialog();
pOpenFileDialog.CheckFileExists = true;
pOpenFileDialog.Title = "打开Shape文件";
pOpenFileDialog.Filter = "Shape文件(*.shp)|*.shp";
pOpenFileDialog.ShowDialog();
获取文件路径
//FileInfo pFileInfo = new FileInfo(pOpenFileDialog.FileName);
//string pPath = pOpenFileDialog.FileName.Substring(0, pOpenFileDialog.FileName.Length - pFileInfo.Name.Length);
//mainMapControl.AddShapeFile(pPath, pFileInfo.Name);
IWorkspaceFactory pWorkspaceFactory;
IFeatureWorkspace pFeatureWorkspace;
IFeatureLayer pFeatureLayer;
string pFullPath = pOpenFileDialog.FileName;
if (pFullPath == "") return;
int pIndex = pFullPath.LastIndexOf("\\");
string pFilePath = pFullPath.Substring(0, pIndex); //文件路径
string pFileName = pFullPath.Substring(pIndex + 1); //文件名
//实例化ShapefileWorkspaceFactory工作空间,打开Shape文件
pWorkspaceFactory = new ShapefileWorkspaceFactory();
pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(pFilePath, 0);
//创建并实例化要素集
IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(pFileName);
pFeatureLayer = new FeatureLayer();
pFeatureLayer.FeatureClass = pFeatureClass;
pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
axMapControl1.Map.AddLayer(pFeatureLayer);
axMapControl1.ActiveView.Refresh();
//同步鹰眼
SynchronizeEagleEye();
}
catch (Exception ex)
{
MessageBox.Show("图层加载失败!" + ex.Message);
}
}
3.引用的dll文件
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;