分类: AE开发积累2009-05-21 16:491118人阅读评论(0)收藏举报

1.加载Shapefile数据

1 IWorkspaceFactory pWorkspaceFactory;
2 IFeatureWorkspace pFeatureWorkspace;
3 IFeatureLayer pFeatureLayer;
4
5 //获取当前路径和文件名
6 OpenFileDialog dlg = new OpenFileDialog();
7 dlg.Filter = "Shape(*.shp)|*.shp|All Files(*.*)|*.*";
8 dlg.Title = "Open Shapefile data";
9 dlg.ShowDialog();
10 string strFullPath = dlg.FileName;
11 if (strFullPath == "") return;
12 int Index = strFullPath.LastIndexOf("//");
13 string filePath = strFullPath.Substring(0, Index);
14 string fileName = strFullPath.Substring(Index + 1);
15
16 //打开工作空间并添加shp文件
17 pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
18 pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);
19 pFeatureLayer = new FeatureLayerClass();
20 
21 pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(fileName);
22 pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
23 axMapControl1.Map.AddLayer(pFeatureLayer);
24 axMapControl1.ActiveView.Refresh();

2.加载栅格数据

1 IWorkspaceFactory pWorkspaceFactory;
2 IRasterWorkspace pRasterWorkspace;
3
4 OpenFileDialog dlg = new OpenFileDialog();
5 dlg.Filter = "Layer File(*.lyr)|*.jpg;*.bmp;*.tiff";
6 dlg.Title = "Open Raster Data File";
7 dlg.ShowDialog();
8 //获取当前路径和文件名
9 string strFullPath = dlg.FileName;
10 if (strFullPath == "") return;
11 int Index = strFullPath.LastIndexOf("//");
12 string fileName = strFullPath.Substring(Index + 1);
13 string filePath = strFullPath.Substring(0, Index);
14
15 pWorkspaceFactory = new RasterWorkspaceFactoryClass();
16 pRasterWorkspace = (IRasterWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);
17 IRasterDataset pRasterDataset = (IRasterDataset)pRasterWorkspace.OpenRasterDataset(fileName);
18 IRasterLayer pRasterLayer = new RasterLayerClass();
19 pRasterLayer.CreateFromDataset(pRasterDataset);
20 axMapControl1.Map.AddLayer(pRasterLayer);
21 axMapControl1.ActiveView.Refresh();

3.加载CAD数据

1 IWorkspaceFactory pWorkspaceFactory;
2 IFeatureWorkspace pFeatureWorkspace;
3 IFeatureLayer pFeatureLayer;
4 IFeatureDataset pFeatureDataset;
5 //获取当前路径和文件名
6 OpenFileDialog dlg = new OpenFileDialog();
7 dlg.Filter = "CAD(*.dwg)|*.dwg|All Files(*.*)|*.*";
8 dlg.Title = "Open CAD Data file";
9 dlg.ShowDialog();
10 string strFullPath = dlg.FileName;
11 if (strFullPath == "") return;
12 int Index = strFullPath.LastIndexOf("//");
13 string filePath = strFullPath.Substring(0, Index);
14 string fileName = strFullPath.Substring(Index + 1);
15 //打开CAD数据集
16 pWorkspaceFactory = new CadWorkspaceFactoryClass();
17 pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);
18 //打开一个要素集
19 pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(fileName);
20 //IFeaturClassContainer可以管理IFeatureDataset中的每个要素类 
21 IFeatureClassContainer pFeatClassContainer = (IFeatureClassContainer)pFeatureDataset;
22 //对CAD文件中的要素进行遍历处理 
23 for (int i = 0; i < pFeatClassContainer.ClassCount - 1; i++)
24 {
25 IFeatureClass pFeatClass = pFeatClassContainer.get_Class(i);
26 if (pFeatClass.FeatureType == esriFeatureType.esriFTCoverageAnnotation)
27 //如果是注记,则添加注记层
28 pFeatureLayer = new CadAnnotationLayerClass();
29 else//如果是点、线、面,则添加要素层
30 {
31 pFeatureLayer = new FeatureLayerClass();
32 pFeatureLayer.Name = pFeatClass.AliasName;
33 pFeatureLayer.FeatureClass = pFeatClass;
34 axMapControl1.Map.AddLayer(pFeatureLayer);
35 axMapControl1.ActiveView.Refresh();
36 }
37 }

4.加载PersonGeodatabase数据

1 IWorkspaceFactory pAccessWorkspaceFactory;
2 IFeatureWorkspace pFeatureWorkspace;
3 IFeatureLayer pFeatureLayer;
4 IFeatureDataset pFeatureDataset;
5
6 //获取当前路径和文件名
7 OpenFileDialog dlg = new OpenFileDialog();
8 dlg.Filter = "Personal Geodatabase(*.mdb)|*.mdb|All Files(*.*)|*.*";
9 dlg.Title = "Open PersonGeodatabase file";
10 dlg.ShowDialog();
11 string strFullPath = dlg.FileName;
12 if (strFullPath == "") return;
13
14 //打开personGeodatabase,并添加图层
15 pAccessWorkspaceFactory = new AccessWorkspaceFactoryClass();
16 //打开工作空间并遍历数据集
17 IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(strFullPath, 0);
18 IEnumDataset pEnumDataset = pWorkspace.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTAny);
19 pEnumDataset.Reset();
20 IDataset pDataset = pEnumDataset.Next();
21 //如果数据集是IFeatureDataset,则遍历它下面的子类
22 if (pDataset is IFeatureDataset)
23 {
24 pFeatureWorkspace = (IFeatureWorkspace)pAccessWorkspaceFactory.OpenFromFile(strFullPath, 0);
25 pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(pDataset.Name);
26 IEnumDataset pEnumDataset1 = pFeatureDataset.Subsets;
27 pEnumDataset1.Reset();
28 IDataset pDataset1 = pEnumDataset1.Next();
29 //如果子类是FeatureClass,则添加到axMapControl1中
30 if (pDataset1 is IFeatureClass)
31 {
32 pFeatureLayer = new FeatureLayerClass();
33 pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(pDataset1.Name);
34 pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
35 axMapControl1.Map.AddLayer(pFeatureLayer);
36 axMapControl1.ActiveView.Refresh();
37 }
38 else
39 {
40 MessageBox.Show("No FeatureLayer!");
41 }
42 }
43 else
44 {
45 pFeatureWorkspace = (IFeatureWorkspace)pWorkspace;
46 pFeatureLayer = new FeatureLayerClass();
47 pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass("图层名");
48 pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
49 axMapControl1.Map.AddLayer(pFeatureLayer);
50 axMapControl1.ActiveView.Refresh();
51 }

5.加载SDE数据库数据

1 public ESRI.ArcGIS.Geodatabase.IWorkspace arcSDEWorkspaceOpen(String server, String instance, String user, String password, String database, String version)
2 {
3 try
4 {
5 // Create and populate the property set
6 ESRI.ArcGIS.esriSystem.IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass();
7 propertySet.SetProperty("SERVER", server);
8 propertySet.SetProperty("INSTANCE", instance);
9 propertySet.SetProperty("DATABASE", database);
10 propertySet.SetProperty("USER", user);
11 propertySet.SetProperty("PASSWORD", password);
12 propertySet.SetProperty("VERSION", version);
13
14 ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2 workspaceFactory;
15 workspaceFactory = (ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2)new SdeWorkspaceFactoryClass();
16 return workspaceFactory.Open(propertySet, 0);
17 }
18 catch (Exception e)
19 {
20 throw new Exception(String.Format("arcSDEWorkspaceOpen: {0}", e.Message), e);
21 }
22 }
23
24 IWorkspace pWorkspace = arcSDEWorkspaceOpen("计算机名", "5151", "数据库用户", "密码", "", "sde.DEFAULT");
25
26 IFeatureWorkspace pFeattureWS = (IFeatureWorkspace)pWorkspace;
27 IFeatureClass pFeatureClass = pFeattureWS.OpenFeatureClass("图层名");
28 IFeatureLayer pFeatureLayer = new FeatureLayerClass();
29 pFeatureLayer.FeatureClass = pFeatureClass;
30
31 axMapControl1.AddLayer(pFeatureLayer);
32 axMapControl1.Refresh();  

最新文章

  1. AutoHotkey之自问自答
  2. hdu 1568 Fibonacci 数学公式
  3. 实现QQ空间图片预览效果
  4. [SOJ] Ordering Tasks
  5. ELK学习总结(1-2)安装ElasticSearch
  6. 使用redis可能出现的问题
  7. 如何用Nginx解决前端跨域问题?
  8. vue购物车实战项02
  9. 【java】转:Windows系统下面多个jdk版本切换
  10. hadoop和spark相关参数的配置
  11. 设计模式 笔记 中介者模式 Mediator
  12. java字符串拼接的几种方式
  13. 【BZOJ1858】序列操作(线段树)
  14. AdvStringGrid 删除数据
  15. 【BZOJ 3727】 3727: PA2014 Final Zadanie (递推)
  16. windows 本地配置hadoop客户端
  17. js 实现全国省市区三级联动
  18. windows7自动登录后锁定 &amp; 其他VBS
  19. caffe整体框架的学习的博客,这个博客山寨了一个caffe框架
  20. Python:笔记(2)——函数与模块

热门文章

  1. Architecture of a Highly Scalable NIO-Based Server
  2. Cygwin + CMake 测试
  3. Cocos2d-JS引入其他场景小实例
  4. jQuery 遍历json数组的实现代码
  5. UITextView打开文字中的URL
  6. Weak Pair---hud5877大连网选(线段树优化+dfs)
  7. leap motion
  8. Appium-001-测试开发环境搭建(Android - Win7)
  9. HBASE架构解析(一)
  10. C# --通过枚举获取系统颜色