利用Arcengine 直接加载shp文件
2015-07-28 15:33
302 查看
转载自:http://www.gisall.com/html/40/145240-5406.html
AE中shp文件的加载
步骤:
1) 创建工作空间工厂
2) 打开shapefile工作空间
3) 打开要素类
4) 创建要素图层
5) 关联图层和要素类
6) 添加到地图空间
具体代码(后面数字为对应的步骤):
原文链接:
http://hi.baidu.com/galileo0405/blog/item/6689be922a431381a977a4bd.html
AE中shp文件的加载
步骤:
1) 创建工作空间工厂
2) 打开shapefile工作空间
3) 打开要素类
4) 创建要素图层
5) 关联图层和要素类
6) 添加到地图空间
具体代码(后面数字为对应的步骤):
new ShapefileWorkspaceFactory (); // 1 openFileDialog1.Filter="shaperfile(*.shp)|*.shp"; openFileDialog1.InitialDirectory=@"E:\test\文档和数据\Data"; openFileDialog1.Multiselect=false; DialogResult pDialogResult=openFileDialog1.ShowDialog (); if(pDialogResult !=DialogResult.OK) return; string pPath=openFileDialog1 .FileName; string pFolder=Path.GetDirectoryName (pPath); string pFileName=Path.GetFileName(pPath); IWorkspace pWorkspace=pWorkspaceFactory .OpenFromFile(pFolder ,0); // 2 IFeatureWorkspace pFeatureWorkspace =pWorkspace as IFeatureWorkspace ; IFeatureClass pFC=pFeatureWorkspace .OpenFeatureClass (pFileName ); //3 IFeatureLayer pFLayer=new FeatureLayerClass (); // 4 pFLayer.FeatureClass =pFC; pFLayer.Name =pFC.AliasName ; // 5 ILayer pLayer=pFLayer as ILayer ; IMap pMap=axMapControl1.Map ; pMap.AddLayer(pLayer); // 6 axMapControl1.ActiveView .Refresh (); ----------------------------------------------------------------------------------------------------------- //添加ArcGIS命名空间 using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.DataSourcesRaster; //存储打开文件的全路径 string fullFilePath; //设置OpenFileDialog的属性,使其能打开多种类型文件 OpenFileDialog penFile = new OpenFileDialog(); openFile.Filter = "shape文件(*.shp)|*.shp|"; openFile.Filter +="栅格数据(*.jpg,*.bmp,*.tiff)|*.jpg;*.bmp;*.tiff|"; openFile.Filter +="地图文档(*.mxd,*.mxt,*.jmf)|*.mxd;*.mxt;*.jmf"; openFile.Title = "打开文件"; try { if (openFile.ShowDialog() == DialogResult.OK) { fullFilePath = openFile.FileName; //获得文件路径 int index = fullFilePath.LastIndexOf("\"); string filePath = fullFilePath.Substring(0, index); //获得文件名称 string fileNam = fullFilePath.Substring(index + 1); //加载shape文件 if (openFile.FilterIndex == 1) { //打开工作空间工厂 IWorkspaceFactory workspcFac = new ShapefileWorkspaceFactory(); IFeatureWorkspace featureWorkspc; IFeatureLayer featureLay = new FeatureLayerClass(); //打开路径 featureWorkspc = workspcFac.OpenFromFile(filePath, 0) as IFeatureWorkspace; //打开类要素 featureLay.FeatureClass = featureWorkspc.OpenFeatureClass(fileNam); //清空图层 axMapControl1.ClearLayers(); //添加图层 axMapControl1.AddLayer(featureLay); axMapControl1.Refresh(); } //加载栅格图像 else if (openFile.FilterIndex == 2) { IWorkspaceFactory workspcFac = new RasterWorkspaceFactory(); IRasterWorkspace rasterWorkspc; IRasterDataset rasterDatst = new RasterDatasetClass(); IRasterLayer rasterLay = new RasterLayerClass(); rasterWorkspc = workspcFac.OpenFromFile(filePath, 0) as IRasterWorkspace; rasterDatst = rasterWorkspc.OpenRasterDataset(fileNam ); rasterLay.CreateFromDataset(rasterDatst); axMapControl1.ClearLayers(); axMapControl1.AddLayer(rasterLay); axMapControl1.Refresh(); } //加载地图文档 else if (openFile.FilterIndex == 3) { IMapDocument mapDoc = new MapDocumentClass(); mapDoc.Open(filePath ,""); axMapControl1.ClearLayers(); for (int i = 0; i < mapDoc.MapCount - 1; i++) { axMapControl1.Map =mapDoc.get_Map (i); } IActiveView activeViw = axMapControl1.Map as IActiveView; activeViw.Extent = axMapControl1.FullExtent; axMapControl1.Refresh(); } } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString ()); } } }
原文链接:
http://hi.baidu.com/galileo0405/blog/item/6689be922a431381a977a4bd.html
相关文章推荐
- tmp目录自动清除和tmpwatch命令
- hdu1509 Windows Message Queue
- jq的json插件使用总结(jquery.json.min.js)
- jquery.ajax()参数
- Java中多态、抽象类和接口
- hadoop之MapReduce调用R的一次失败的总结~(续五)
- 文章标题
- 区间最值的问题
- PAT (Advanced Level) 1066. Root of AVL Tree (25) AVL树的插入建树
- POJ 1256 Anagram
- 【图论】【二分图匹配】[POJ 3041]I'm Telling the Truth
- iOS 点击TextField不弹出软键盘的解决方案
- ASP.NET前台AJAX方法调用后台的方法写法
- JavaScript高级程序设计(第三版)学习笔记(1)
- EM算法
- easyui-combobox加载json中对象的属性(转)
- GID SID AID HID
- 使用Browserify配合jQuery进行编程的超级指南
- ScrollView的滑动时的下拉距离的响应事件。
- SQL注入学习笔记(一)