惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
F
Fortinet All Blogs
博客园_首页
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
D
Docker
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
量子位
The Last Watchdog
The Last Watchdog
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Blog of Author Tim Ferriss
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
小众软件
小众软件
Cloudbric
Cloudbric
博客园 - 司徒正美
H
Help Net Security
人人都是产品经理
人人都是产品经理
Application and Cybersecurity Blog
Application and Cybersecurity Blog
L
LangChain Blog
Latest news
Latest news
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
博客园 - Franky
S
Security Affairs
W
WeLiveSecurity
F
Full Disclosure
Know Your Adversary
Know Your Adversary
Google DeepMind News
Google DeepMind News
The Hacker News
The Hacker News
Cyberwarzone
Cyberwarzone
美团技术团队
PCI Perspectives
PCI Perspectives
C
Check Point Blog
Spread Privacy
Spread Privacy

博客园 - WolfのPL

数学地理 ArcGIS Server9.2的Cache! ArcGIS Server连接方式介绍 远程连接server问题 ArcGIS Explorer build480即将发布! ArcGIS9.2 SP5已发布! ArcSDE中间件技术的生命力(原文作者:蔡晓冰) GeoDatabase设计之拓扑 arcsde9.2远程安装(ORACLE) ArcGIS9.2支持多种数据格式导入导出 ArcSDE服务介绍 巧用Arcmap中字段计算器(field calculations) ArcGIS中应用Expressions标注(Label)之一—上下标、分数等特殊形式标注 ArcGIS中应用Expressions标注(Label)之二—使用外部数据库中数据标注要素 创建一个简单的ArcGIS Server ASP.NET网页(转载) ArcGIS Server--揭开你的神秘面纱 VC杂记 ArcGIS Server9.2安装过程 The Digital Earth: Understanding our planet in the 21st Century.(转载)
ArcGIS Engine中加载数据
WolfのPL · 2008-04-03 · via 博客园 - WolfのPL

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();

部分内容参考:http://www.cnblogs.com/vakinglee/archive/2006/09/22/511606.html