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 ...
随机推荐
- MySQL-中文全文检索
一.概述 MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度. 二.语法 1 2 MATCH (col1,col2,...) AGAINST (exp ...
- Object C语法学习
#synthesize关键字: 根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量 . @implementation 关键字,表明类的实现 @en ...
- Cocos2d-JS轻量级开发
官方提供了另外一种使用cocos2d js的方式,更适合web开发者,只要引用一个js就可以了 1.下载Cocos2d-JS Lite Version(去下载>>) 下载下来的将是一个完整 ...
- gridcontrol中使用右健菜单popupMenu1
private void gridView1_ShowGridMenu(object sender, DevExpress.XtraGrid.Views.Grid.GridMenuEventArgs ...
- 用户交互与while循环<代码>
#用户交互1 age_oldboy = 56 guess_age = int(input(">>:")) if guess_age == age_oldboy: pri ...
- Selenium2学习-032-WebUI自动化实战实例-030-JavaScript 在 Selenium 自动化中的应用实例之五(高亮标示元素)
在自动化脚本编写过程中,操作元素之前,需要对元素进行高亮显示(通过修改元素的边框样式),同时进行截图,以记录操作的元素对象.在实际应用中较为少见,通常用于演示,或者发生错误时的屏幕截图捕捉,用于错误报 ...
- ubuntu mysql 远程连接
最近需要远程连接mysql服务器,先进行简单的测试,过程记录于此. 参考链接: http://blog.chinaunix.net/uid-28458801-id-3445261.html http: ...
- JS操作cookie以及本地存储(sessionStorage 和 localStorage )
JS操作cookie cookie的操作用两种方式 1.substring //创建cookie function setCookie(name,value,expires,path,domain,s ...
- iis7.5应用程序池模板永久性缓存初始化失败解决方法
错误: 针对应用程序池的模板永久性缓存初始化失败,这是由以下错误导致的: 无法为应用程序池创建磁盘缓存子目录.数据可能包含其他错误代码. 解决办法如下: 网上搜索的答案全都是修改3个目录的权限,给II ...
- 借助fastjson 实体对象转map
private Map<String, Object> object2Map(Object object){ JSONObject jsonObject = (JSONObject) JS ...