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 ...
随机推荐
- JS删除数组条目中重复的条目
[腾讯2015春招web前端开发练习卷] 请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组. Array.prototyp ...
- Project Management Process
Project Management ProcessDescription .............................................................. ...
- glusterfs rebalance
# gluster volume rebalance VOLNAME start # gluster volume rebalance VOLNAME status # gluster volume ...
- sqlserver 中server 函数GETDATE(),DEFAULT用法
alter table Persons add datenow date DEFAULT GETDATE() null, datetimenow datetime DEFAULT GETDATE()n ...
- synzhronized原理3
1.java中的每个对象都可作为锁,有三种表现形式: 对于普通方法,锁的是当前this对象. 对于静态方法,锁的是class对象 对于方法块,锁的是synchronized指定的对象. 2.JVM基于 ...
- UIWebView相关设置
让UIWebView的背景透明: 1 2 self.webView.backgroundColor = [UIColor clearColor]; self.webView.opaque = NO 这 ...
- linux查看防火墙状态及开启关闭命令(转)
存在以下两种方式: 一.service方式 查看防火墙状态: [root@centos6 ~]# service iptables status iptables:未运行防火墙. 开启防火墙: [ro ...
- DNSPod各个套餐的DNS地址
DNSPod各个套餐的DNS地址 https://support.dnspod.cn/Kb/showarticle/tsid/178/ DNSPod各个套餐的DNS地址每种域名套餐对应的DNS地址是不 ...
- system执行shell命令
system - execute a shell command #include <stdlib.h> int system (const char *command); 描述 syst ...
- 第八篇 SQL Server安全数据加密
本篇文章是SQL Server安全系列的第八篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...