首页 > 代码库 > 不同数据的导入

不同数据的导入

MXD文档导入

 1 private void btnLoadMxFile_Click(object sender, EventArgs e)
 2         {
 3             OpenFileDialog pOpenFile = new OpenFileDialog();
 4             pOpenFile.CheckFileExists = true;
 5             pOpenFile.Filter = "ArcMap文档(*.mxd)|*.mxd;|ArcMap模板(*.mxt)|*.mxt;|发布文件地图(*.pmf)|*.pmf";
 6             pOpenFile.Title = "打开地图文档";
 7             pOpenFile.Multiselect = false;
 8             pOpenFile.RestoreDirectory = true;                              //保存打开路径
 9             if (pOpenFile.ShowDialog() == DialogResult.OK)
10             {
11                 string fileName = pOpenFile.FileName;
12                 if (fileName == "") return;
13                 if (mainMapControl.CheckMxFile(fileName))
14                 {
15                     mainMapControl.ClearLayers();
16                     mainMapControl.LoadMxFile(fileName);                    //采用AxMapControl控件的LoadMxFile()方法添加MXD文档
17                 }
18                 else
19                 {
20                     MessageBox.Show(fileName + "是无效的地图文档!", "信息提示");
21                     return;
22                 }
23             }
24         }
 1  private void btnImapDocument_Click(object sender, EventArgs e)
 2         {
 3             OpenFileDialog pOpenFile = new OpenFileDialog();
 4             pOpenFile.CheckFileExists = true;
 5             pOpenFile.Filter = "ArcMap文档(*.mxd)|*.mxd;|ArcMap模板(*.mxt)|*.mxt;|发布文件地图(*.pmf)|*.pmf";
 6             pOpenFile.Title = "打开地图文档";
 7             pOpenFile.Multiselect = false;
 8             pOpenFile.RestoreDirectory = true;
 9             if (pOpenFile.ShowDialog() == DialogResult.OK)
10             {
11                 string fileName = pOpenFile.FileName;
12                 if (fileName == "") return;
13                 if (mainMapControl.CheckMxFile(fileName))
14                 {
15                     IMapDocument pMapDoc = new MapDocument();              //采用IMapDocument接口实例的Open()方法打开MXD文档
16                     pMapDoc.Open(fileName);
17                     mainMapControl.Map = pMapDoc.ActiveView.FocusMap;
18                     mainMapControl.ActiveView.Refresh();
19                 }
20                 else
21                 {
22                     MessageBox.Show(fileName + "是无效的地图文档!", "信息提示");
23                     return;
24                 }
25             }
26         }

Shp文档格式导入

 1 private void btnAddShapeFile_Click(object sender, EventArgs e)
 2         {
 3             OpenFileDialog pOpenFile = new OpenFileDialog();
 4             pOpenFile.CheckFileExists = true;
 5             pOpenFile.Filter = "Shape文件(*.shp)|*.shp";
 6             pOpenFile.Title = "打开shape文件";
 7             pOpenFile.Multiselect = false;
 8             pOpenFile.RestoreDirectory = true;
 9             if (pOpenFile.ShowDialog() == DialogResult.OK)
10             {
11                 string FullPath = pOpenFile.FileName;
12                 int pIndex = FullPath.LastIndexOf("\\");
13                 string pFilePath = FullPath.Substring(0, pIndex);//文件路径
14                 string pFileName = FullPath.Substring(pIndex + 1);//文件名
15                 mainMapControl.AddShapeFile(pFilePath, pFileName);            //AddShapeFile(文件路径,文件名)
16                 mainMapControl.ActiveView.Refresh();
17             }
18         }

栅格数据导入

 1  private void btnAddRasterFile_Click(object sender, EventArgs e)
 2         {
 3                 OpenFileDialog pFileDialog = new OpenFileDialog();
 4                 pFileDialog.Title = "打开栅格数据";
 5                 pFileDialog.Filter = "栅格数据(*.*)|*.img;*.bmp;*tif;*img|(*.img)|*.img|(*.tif)|*.tif;|(*.bmp)|*.bmp|(*.img)|*.img";
 6                 pFileDialog.Multiselect = true;//对选
 7                 pFileDialog.CheckFileExists = true;//判断是否存在文件,返回bool
 8                 if (pFileDialog.ShowDialog() == DialogResult.OK)
 9                 {
10                     //获取文件基本信息
11                     string fullPath = pFileDialog.FileName;
12                     int pIndex = fullPath.LastIndexOf("\\");
13                     string pFilePath = fullPath.Substring(0, pIndex);
14                     string pFileName = fullPath.Substring(pIndex + 1);
15                     //获取一个工作空间并转化为Raster栅格空间
16                     IWorkspaceFactory pWorkspaceFac = new RasterWorkspaceFactoryClass();
17                     IWorkspace pWorkspace = pWorkspaceFac.OpenFromFile(pFilePath, 0);//打开的是路径
18                     IRasterWorkspace pRasterWorkspace = pWorkspace as IRasterWorkspace;
19                     IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(pFileName);
20                     //金字塔判断与创建
21                     IRasterPyramid3 pRasterPyramid;
22                     pRasterPyramid = pRasterDataset as IRasterPyramid3;
23                     if (pRasterPyramid != null)//判断文件是否存在
24                     {
25                         if (!pRasterPyramid.Present)
26                         { pRasterPyramid.Create(); }
27                     }
28                     IRaster pRaster;
29                     pRaster = pRasterDataset.CreateDefaultRaster();
30                     IRasterLayer pRasterLayer;
31                     pRasterLayer = new RasterLayerClass();
32                     //pRasterLayer.CreateFromRaster(pRaster);
33                     pRasterLayer.CreateFromDataset(pRasterDataset);
34                     ILayer pLayer = pRasterLayer as ILayer;
35                     mainMapControl.AddLayer(pLayer);
36                     EagleEyeMapControl.AddLayer(pLayer);
37                     mainMapControl.ActiveView.Refresh();
38                     EagleEyeMapControl.ActiveView.Refresh();
39                 }
40             }

 

 CAD格式导入

 1 private void btnAddCadByLayer_Click(object sender, EventArgs e)
 2         {
 3             OpenFileDialog pOpenFileDia = new OpenFileDialog();
 4             pOpenFileDia.Title = "打开CAD数据文件";
 5             pOpenFileDia.Multiselect = true;
 6             pOpenFileDia.Filter = "CAD(*.dwg)|*.dwg";
 7             pOpenFileDia.CheckFileExists = true;
 8             if (pOpenFileDia.ShowDialog() == DialogResult.OK)
 9             {
10                 mainMapControl.ClearLayers();
11                 //string FullName=pOpenFileDia.FileName;
12                 //int pIndex=FullName.LastIndexOf("\\");
13                 //string filePath=FullName.Substring(0,pIndex);
14                 //string fileName=FullName.Substring(pIndex+1);
15 
16                 string filePath = System.IO.Path.GetDirectoryName(pOpenFileDia.FileName);    //使用System.IO.Path直接获取路径名称和文件名
17                 string fileName = System.IO.Path.GetFileName(pOpenFileDia.FileName);
18 
19                 IWorkspaceFactory pWorkspaceFac = new CadWorkspaceFactoryClass();
20                 IWorkspace pWorkspace = pWorkspaceFac.OpenFromFile(filePath, 0);
21                 IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
22 
23                 IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(fileName + ":Annotation"); //fileName是文件名,后面加上:Annotation/point/polyline/polygon是打开对应的注记、点、线、面文件
24                 IFeatureLayer pFeatureLayer = new FeatureLayerClass();   //featureLayer可以实例化,它是要素类的表现形式
25                 pFeatureLayer.FeatureClass = pFeatureClass;              //featureClass是存储数据,通过直接获取无法实例化,每一个featureClass都有一个Geometry模型 
26                 pFeatureLayer.Name = fileName;
27                 mainMapControl.AddLayer(pFeatureLayer);
28                 mainMapControl.ActiveView.Refresh();
29                 EagleEyeMapControl.AddLayer(pFeatureLayer);
30                 EagleEyeMapControl.ActiveView.Refresh();
31             }
32         }

 

不同数据的导入