ArcGIS Engine代码共享-工作空间(workspace)对象操作
来源:互联网 发布:电商大数据应用案例 编辑:程序博客网 时间:2024/04/27 05:52
- 转载于:http://blog.csdn.net/linghe301/article/details/7204985
- public class WorkspaceHelper
- {
- public static string GISConnectionString;
- public static IWorkspace GetAccessWorkspace(string sFilePath)
- {
- if (!File.Exists(sFilePath))
- {
- return null;
- }
- try
- {
- IWorkspaceFactory factory = new AccessWorkspaceFactoryClass();
- return factory.OpenFromFile(sFilePath, 0);
- }
- catch
- {
- return null;
- }
- }
- public static IWorkspace GetSDEWorkspace(string sServerName, string sInstancePort, string sUserName, string sPassword, string sVersionName)
- {
- IPropertySet set = new PropertySetClass();
- set.SetProperty("Server", sServerName);
- set.SetProperty("Instance", sInstancePort);
- set.SetProperty("User", sUserName);
- set.SetProperty("password", sPassword);
- set.SetProperty("version", sVersionName);
- SdeWorkspaceFactoryClass class2 = new SdeWorkspaceFactoryClass();
- try
- {
- return class2.Open(set, 0);
- }
- catch (Exception ex)
- {
- return null;
- }
- }
- public static IWorkspace GetFGDBWorkspace(string sFilePath)
- {
- if (!System.IO.Directory.Exists(sFilePath))
- {
- return null;
- }
- try
- {
- IWorkspaceFactory factory = new FileGDBWorkspaceFactoryClass();
- return factory.OpenFromFile(sFilePath,0);
- }
- catch
- {
- return null;
- }
- }
- public static IWorkspace GetShapefileWorkspace(string sFilePath)
- {
- if (!File.Exists(sFilePath))
- {
- return null;
- }
- try
- {
- IWorkspaceFactory factory = new ShapefileWorkspaceFactoryClass();
- sFilePath = System.IO.Path.GetDirectoryName(sFilePath);
- return factory.OpenFromFile(sFilePath, 0);
- }
- catch
- {
- return null;
- }
- }
- public static string PGDBDataConnectionString(string sPath)
- {
- return ("Provider=ESRI.GeoDB.OLEDB.1;Data Source=" + sPath + ";Extended Properties=workspacetype=esriDataSourcesGDB.AccessWorkspaceFactory.1;Geometry=WKB");
- }
- public static string SDEDataConnectionString(string sServerName, string sDataSource, string sUserName, string sPW)
- {
- 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");
- }
- public static string ShapefileDataConnectionString(string sPath)
- {
- sPath = System.IO.Path.GetDirectoryName(sPath);
- return ("Provider=ESRI.GeoDB.OLEDB.1;Data Source=" + sPath + ";Extended Properties=WorkspaceType=esriDataSourcesFile.ShapefileWorkspaceFactory.1;Geometry=WKB|OBJECT");
- }
- public static bool HighPrecision(IWorkspace pWorkspace)
- {
- IGeodatabaseRelease geoVersion = pWorkspace as IGeodatabaseRelease;
- if (geoVersion == null) return false;
- if (geoVersion.MajorVersion == 2
- && geoVersion.MinorVersion == 2)
- {
- return true;
- }
- return false;
- }
- public static List<String> QueryFeatureClassName(IWorkspace pWorkspace)
- {
- return QueryFeatureClassName(pWorkspace, false, false);
- }
- public static List<String> QueryFeatureClassName(IWorkspace pWorkspace, bool pUpperCase)
- {
- return QueryFeatureClassName(pWorkspace, pUpperCase, false);
- }
- public static List<String> QueryFeatureClassName(IWorkspace pWorkspace, bool pUpperCase, bool pEscapeMetaTable)
- {
- try
- {
- String ownerName = "";
- if (pWorkspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
- {
- ownerName = pWorkspace.ConnectionProperties.GetProperty("user").ToString();
- ownerName = ownerName.ToUpper();
- }
- List<String> sc = new List<String>();
- IEnumDatasetName edn = pWorkspace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);
- IDatasetName dn = edn.Next();
- while (dn != null)
- {
- string dsName = dn.Name.ToUpper();
- if (ownerName.Equals(LayerHelper.GetClassOwnerName(dsName)))
- {
- #region 添加数据集下面的FeatureClass
- IEnumDatasetName fdn = dn.SubsetNames;
- dn = fdn.Next();
- while (dn != null)
- {
- dsName = dn.Name.ToUpper();
- bool isTopology = dn is ITopologyName;
- if (!isTopology)
- {
- string shortName = LayerHelper.GetClassShortName(dsName);
- if (pUpperCase)
- {
- shortName = shortName.ToUpper();
- }
- if (pEscapeMetaTable)
- {
- }
- else
- {
- sc.Add(shortName);
- }
- }
- dn = fdn.Next();
- }
- #endregion
- }
- dn = edn.Next();
- }
- #region 获取直接的FeatureClass
- edn = pWorkspace.get_DatasetNames(esriDatasetType.esriDTFeatureClass);
- dn = edn.Next();
- while (dn != null)
- {
- string dsName = dn.Name.ToUpper();
- if (ownerName.Equals(LayerHelper.GetClassOwnerName(dsName)))
- {
- string shortName = LayerHelper.GetClassShortName(dsName);
- if (pUpperCase)
- {
- shortName = shortName.ToUpper();
- }
- if (pEscapeMetaTable)
- {
- }
- else
- {
- sc.Add(shortName);
- }
- }
- dn = edn.Next();
- }
- #endregion
- return sc;
- }
- catch (Exception ex) { return null; }
- }
- public static List<IConfigurationKeyword> GetConfigurationKeywordList(IWorkspace pWS)
- {
- List<IConfigurationKeyword> pList = new List<IConfigurationKeyword>();
- IWorkspaceConfiguration pWConfig = pWS as IWorkspaceConfiguration;
- IEnumConfigurationKeyword pEnumConfig = pWConfig.ConfigurationKeywords;
- IConfigurationKeyword pConfig = pEnumConfig.Next();
- while (pConfig != null)
- {
- pList.Add(pConfig);
- pConfig = pEnumConfig.Next();
- }
- return pList;
- }
- public static List<IConfigurationParameter> GetConfigurationParameterList(IConfigurationKeyword pConfig)
- {
- List<IConfigurationParameter> pList = new List<IConfigurationParameter>();
- IEnumConfigurationParameter pEnumCP = pConfig.ConfigurationParameters;
- IConfigurationParameter pCP = pEnumCP.Next();
- while (pCP != null)
- {
- pList.Add(pCP);
- pCP = pEnumCP.Next();
- }
- return pList;
- }
- }
0 0
- ArcGIS Engine代码共享-工作空间(workspace)对象操作
- ArcGIS Engine代码共享-工作空间(workspace)对象操作
- ArcGIS Engine代码共享-工作空间(workspace)
- ArcGIS Engine代码共享-投影(SpatialReference)对象操作
- ArcGIS Engine代码共享-符号(Symbol)对象操作
- ArcGIS Engine代码共享-投影(SpatialReference)对象操作
- ArcGIS Engine代码共享-投影(SpatialReference)对象操作
- arcgis engine 开发 工作空间
- ArcGIS Engine代码共享-颜色(Color)对象函数
- ArcGIS Engine代码共享-要素(Feature)操作
- ArcGIS Engine代码共享-字段(Field)操作
- ArcGIS Engine代码共享-图层(Layer)操作
- ArcGIS Engine代码共享-不同格式数据打开,对象创建,导入导出
- Arcgis Engine 的一些代码共享。首先感谢原创
- arcgis engine空间查询与属性查询的主要代码
- arcgis engine空间查询与属性查询的主要代码
- arcgis engine空间查询与属性查询的主要代码
- Arcgis Engine 分解对象
- poj 1704Georgia and Bob nim博弈
- Android 之书签、工具链接
- .NET Web开发技术简单整理
- 算法学习之排序(4)--Shell排序
- Windows下将Spring源码导入eclipse/sts
- ArcGIS Engine代码共享-工作空间(workspace)对象操作
- Git下载Spring项目源码并编译为Eclipse
- 【懂了之后再看】PHP解释器引擎执行流
- HDU(3567):八数码问题(升级版)——双BFS
- 麦森数
- B. Drazil and His Happy Friends
- 黑马程序员————IOS学习笔记 第8篇 内存管理优化
- Ubuntu下管理启动服务
- T-SQL WITH AS