ArcGIS Engine中加载数据
1.加载Shapefile数据
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.加载栅格数据
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数据
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数据
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
else39
{40
MessageBox.Show("No FeatureLayer!");41
}42
}43
else44
{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数据库数据
public ESRI.ArcGIS.Geodatabase.IWorkspace arcSDEWorkspaceOpen(String server, String instance, String user, String password, String database, String version)2
{3
try4
{5
// Create and populate the property set6
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(); ArcGIS Engine中加载数据的更多相关文章
- Flexigrid从对象中加载数据
(有问题,在找…………) Flexigrid是用来动态加载数据的一种比较好(老)的Jquery表插件,然后有些时候,我们需要其从本地或者jQuery对象中加载数据,比如有这么个需求,页面显示中有两个表 ...
- ML.NET Cookbook --- 1.如何从文本文件中加载数据?
使用ML.NET中的TextLoader扩展方法从文本文件中加载数据.你需要知道在文本文件中数据列在那里,它们的类型是什么,在文本文件中什么位置可以找到它们. 请注意:对于ML.NET只读取文件的某些 ...
- 机器学习:从sklearn中加载数据
一.sklearn模块 sklearn模块下有很多子模块,常用的数据集在:sklearn.datasets模块下: 通过数据集中DESCR来查看数据集的文档: 从datasets中加载数据: impo ...
- python数据可视化-matplotlib入门(6)-从文件中加载数据
前几篇都是手动录入或随机函数产生的数据.实际有许多类型的文件,以及许多方法,用它们从文件中提取数据来图形化. 比如之前python基础(12)介绍打开文件的方式,可直接读取文件中的数据,扩大了我们的数 ...
- 向treeview中加载数据
1.获取树节点的值,用事件AfterSelect加载(id值的获取,用name来获取) 2.双击treeview控件得到 private void treeView1_AfterSelect(obje ...
- java多线程向数据库中加载数据
读取本地文件,每行为一条记录,文件大小550M,200万条数据.先将文件读取的内存中,再开启6个线程连接postgresql不同coordinator端口导入数据.代码如下: import java. ...
- Vue完成页面切换中加载数据
created() { // 拿到路由传递来的car主键 let pk = this.$route.query.pk || this.$route.params.pk; // 主键不存在,就直接结束方 ...
- DHTMLX 前端框架 建立你的一个应用程序 教程(六)-- 表格加载数据
从数据库加载数据 这篇我们介绍从MySQL数据库中加载数据到表格 我们使用 MySql的数据库dhtmlx_tutorial 和表contacts 示例使用的是PHP平台和dhtmlxConnecto ...
- Android动画之仿美团加载数据等待时,小人奔跑进度动画对话框(附顺丰快递员奔跑效果)
Android动画之仿美团加载数据等待时,小人奔跑进度动画对话框(附顺丰快递员奔跑效果) 首句依然是那句老话,你懂得! finddreams :(http://blog.csdn.net/finddr ...
随机推荐
- sublime3的安装和注册,和前端利器emmet插件的安装。
1.下载sublime3,在网上搜索sublime3,在官网下载即可. 2.下载后安装,直接下一步下一步即可安装. 3.注册. 在help菜单中,enter license里面输入 —– BEGIN ...
- 【转】JSP中的9大隐藏对象
隐藏对象用在jsp表达式和脚本中,不能直接用在jsp声明中,因为这些隐藏对象是容器在jspservice方法中定义的,在这个方法中定义的变量不能在jsp声明中使用.可以通过参数方法将隐藏对象传递到js ...
- 【Android测试】【第九节】MonkeyRunner—— 初识
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4836815.html 不得不说两句,过了这么久才再次更新博 ...
- 转: css box-sizing的用法
當你設定一個元素樣式為 box-sizing: border-box;,這個元素的內距和邊框將不會增加元素本身的寬度. <!DOCTYPE html> <html lang=&quo ...
- MongoDB直接执行js脚本
有时候很大一段命令要执行,中间有错就得重新写,这样超麻烦的,不妨存放于js文件里,然后通过shell命令执行,重复利用率高,修改方便. 比如创建test.js print('=========WECO ...
- Eclipse中直接双击执行bat时路径问题
之前bat中使用的是 cd %cd% 这样在文件夹中直接运行bat是没问题的 但在eclipse中运行, 取得的路径就是eclipse.exe的所在路径 而如果需要获得bat文件的实际所在路径 应该使 ...
- 玩儿了一下django User authentication
五一在家,VPN不能链接了,而项目在本地run的过程中,又需要链接公司的SSO server才能login.下雨,不想去公司,又不得不在家做task,只能想办法避开SSO login,以前知道djan ...
- 怎么清除file控件的文件路径
还记得上次做一个文件上传,后来测试告诉我说,如果我要是不选择文件了呢?该怎么办?我说:简单啊,做一个取消按钮不就完事了吗!然后我就想一个file空间做一个取消是多么简单的事,用js处理可是想怎么样就怎 ...
- 详解Spring事件驱动模型
转载自:http://jinnianshilongnian.iteye.com/blog/1902886#comments 事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理 ...
- LeetCode Inorder Successor in BST
原题链接在这里:https://leetcode.com/problems/inorder-successor-in-bst/ Given a binary search tree and a nod ...