AE加载数据

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();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值