zoukankan      html  css  js  c++  java
  • ArcGIS Engine代码共享-工作空间(workspace)对象操作

    代码:

      1 public class WorkspaceHelper  
      2     {  
      3         public static string GISConnectionString;  
      4         public static IWorkspace GetAccessWorkspace(string sFilePath)  
      5         {  
      6             if (!File.Exists(sFilePath))  
      7             {  
      8                 return null;  
      9             }  
     10             try  
     11             {  
     12                 IWorkspaceFactory factory = new AccessWorkspaceFactoryClass();  
     13                 return factory.OpenFromFile(sFilePath, 0);  
     14             }  
     15             catch  
     16             {  
     17                 return null;  
     18             }  
     19         }  
     20         public static IWorkspace GetSDEWorkspace(string sServerName, string sInstancePort, string sUserName, string sPassword, string sVersionName)  
     21         {  
     22             IPropertySet set = new PropertySetClass();  
     23             set.SetProperty("Server", sServerName);  
     24             set.SetProperty("Instance", sInstancePort);  
     25             set.SetProperty("User", sUserName);  
     26             set.SetProperty("password", sPassword);  
     27             set.SetProperty("version", sVersionName);  
     28             SdeWorkspaceFactoryClass class2 = new SdeWorkspaceFactoryClass();  
     29             try  
     30             {  
     31                 return class2.Open(set, 0);  
     32             }  
     33             catch (Exception ex)  
     34             {  
     35                 return null;  
     36             }  
     37         }  
     38         public static IWorkspace GetFGDBWorkspace(string sFilePath)  
     39         {  
     40             if (!System.IO.Directory.Exists(sFilePath))  
     41             {  
     42                 return null;  
     43             }  
     44             try  
     45             {  
     46                 IWorkspaceFactory factory = new FileGDBWorkspaceFactoryClass();  
     47                 return factory.OpenFromFile(sFilePath,0);  
     48             }  
     49             catch  
     50             {  
     51                 return null;  
     52             }  
     53         }  
     54         public static IWorkspace GetShapefileWorkspace(string sFilePath)  
     55         {  
     56             if (!File.Exists(sFilePath))  
     57             {  
     58                 return null;  
     59             }  
     60             try  
     61             {  
     62                 IWorkspaceFactory factory = new ShapefileWorkspaceFactoryClass();  
     63                 sFilePath = System.IO.Path.GetDirectoryName(sFilePath);  
     64                 return factory.OpenFromFile(sFilePath, 0);  
     65             }  
     66             catch  
     67             {  
     68                 return null;  
     69             }  
     70         }  
     71         public static string PGDBDataConnectionString(string sPath)  
     72         {  
     73             return ("Provider=ESRI.GeoDB.OLEDB.1;Data Source=" + sPath + ";Extended Properties=workspacetype=esriDataSourcesGDB.AccessWorkspaceFactory.1;Geometry=WKB");  
     74         }  
     75         public static string SDEDataConnectionString(string sServerName, string sDataSource, string sUserName, string sPW)  
     76         {  
     77             return ("Provider=ESRI.GeoDB.OLEDB.1;Location=" + sServerName + ";Data Source=" + sDataSource + "; User Id=" + sUserName + ";Password=" + sPW + "; Extended Properties=WorkspaceType= esriDataSourcesGDB.SDEWorkspaceFactory.1;Geometry=WKB|OBJECT;Instance=5151;Version=SDE.DEFAULT");  
     78         }  
     79         public static string ShapefileDataConnectionString(string sPath)  
     80         {  
     81             sPath = System.IO.Path.GetDirectoryName(sPath);  
     82             return ("Provider=ESRI.GeoDB.OLEDB.1;Data Source=" + sPath + ";Extended Properties=WorkspaceType=esriDataSourcesFile.ShapefileWorkspaceFactory.1;Geometry=WKB|OBJECT");  
     83         }  
     84         public static bool HighPrecision(IWorkspace pWorkspace)  
     85         {  
     86             IGeodatabaseRelease geoVersion = pWorkspace as IGeodatabaseRelease;  
     87             if (geoVersion == null) return false;  
     88             if (geoVersion.MajorVersion == 2  
     89                 && geoVersion.MinorVersion == 2)  
     90             {  
     91                 return true;  
     92             }  
     93             return false;  
     94         }  
     95         public static List<String> QueryFeatureClassName(IWorkspace pWorkspace)  
     96         {  
     97             return QueryFeatureClassName(pWorkspace, false, false);  
     98         }  
     99         public static List<String> QueryFeatureClassName(IWorkspace pWorkspace, bool pUpperCase)  
    100         {  
    101             return QueryFeatureClassName(pWorkspace, pUpperCase, false);  
    102         }  
    103         public static List<String> QueryFeatureClassName(IWorkspace pWorkspace, bool pUpperCase, bool pEscapeMetaTable)  
    104         {  
    105             try  
    106             {  
    107                 String ownerName = "";  
    108                 if (pWorkspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)  
    109                 {  
    110                     ownerName = pWorkspace.ConnectionProperties.GetProperty("user").ToString();  
    111                     ownerName = ownerName.ToUpper();  
    112                 }  
    113                 List<String> sc = new List<String>();  
    114                 IEnumDatasetName edn = pWorkspace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);  
    115                 IDatasetName dn = edn.Next();  
    116                 while (dn != null)  
    117                 {  
    118                     string dsName = dn.Name.ToUpper();  
    119                     if (ownerName.Equals(LayerHelper.GetClassOwnerName(dsName)))  
    120                     {  
    121                         #region 添加数据集下面的FeatureClass  
    122                         IEnumDatasetName fdn = dn.SubsetNames;  
    123   
    124                         dn = fdn.Next();  
    125                         while (dn != null)  
    126                         {  
    127                             dsName = dn.Name.ToUpper();  
    128                             bool isTopology = dn is ITopologyName;  
    129                             if (!isTopology)  
    130                             {  
    131                                 string shortName = LayerHelper.GetClassShortName(dsName);  
    132                                 if (pUpperCase)  
    133                                 {  
    134                                     shortName = shortName.ToUpper();  
    135                                 }  
    136                                 if (pEscapeMetaTable)  
    137                                 {  
    138                                      
    139                                 }  
    140                                 else  
    141                                 {  
    142                                     sc.Add(shortName);  
    143                                 }  
    144                             }  
    145                             dn = fdn.Next();  
    146                         }  
    147                         #endregion  
    148                     }  
    149                     dn = edn.Next();  
    150                 }  
    151                 #region 获取直接的FeatureClass  
    152                 edn = pWorkspace.get_DatasetNames(esriDatasetType.esriDTFeatureClass);  
    153                 dn = edn.Next();  
    154                 while (dn != null)  
    155                 {  
    156                     string dsName = dn.Name.ToUpper();  
    157                     if (ownerName.Equals(LayerHelper.GetClassOwnerName(dsName)))  
    158                     {  
    159                         string shortName = LayerHelper.GetClassShortName(dsName);  
    160                         if (pUpperCase)  
    161                         {  
    162                             shortName = shortName.ToUpper();  
    163                         }  
    164                         if (pEscapeMetaTable)  
    165                         {  
    166                             
    167                         }  
    168                         else  
    169                         {  
    170                             sc.Add(shortName);  
    171                         }  
    172                     }  
    173                     dn = edn.Next();  
    174                 }  
    175                 #endregion  
    176                 return sc;  
    177             }  
    178             catch (Exception ex) { return null; }  
    179         }  
    180         public static List<IConfigurationKeyword> GetConfigurationKeywordList(IWorkspace pWS)  
    181         {  
    182             List<IConfigurationKeyword> pList = new List<IConfigurationKeyword>();  
    183             IWorkspaceConfiguration pWConfig = pWS as IWorkspaceConfiguration;  
    184             IEnumConfigurationKeyword pEnumConfig = pWConfig.ConfigurationKeywords;  
    185             IConfigurationKeyword pConfig = pEnumConfig.Next();  
    186             while (pConfig != null)  
    187             {  
    188                 pList.Add(pConfig);  
    189                 pConfig = pEnumConfig.Next();  
    190             }  
    191            return  pList;  
    192         }  
    193         public static List<IConfigurationParameter> GetConfigurationParameterList(IConfigurationKeyword pConfig)  
    194         {  
    195             List<IConfigurationParameter> pList = new List<IConfigurationParameter>();  
    196             IEnumConfigurationParameter pEnumCP = pConfig.ConfigurationParameters;  
    197             IConfigurationParameter pCP = pEnumCP.Next();  
    198             while (pCP != null)  
    199             {  
    200                 pList.Add(pCP);  
    201                 pCP = pEnumCP.Next();  
    202             }  
    203             return pList;  
    204         }  
    205     } 
    View Code
  • 相关阅读:
    分治fft
    DSU on tree
    最小矩形覆盖
    用gallery展示图片,实现中间图片稍大,两边较小的效果
    动态刷新listview中的数据
    比较两个文件是否一样
    安卓巴士Android开发神贴整理
    Failed to register input channel. Check logs for details.
    解决scrollview嵌套ImageView时,出现除顶部和底部黑块的问题
    获取系统图片,并放入ImageList
  • 原文地址:https://www.cnblogs.com/qiernonstop/p/4468440.html
Copyright © 2011-2022 走看看