【发布时间】:2011-08-16 07:08:50
【问题描述】:
我有一个扩展名为 .gdb 的 GeoDB。有没有人尝试过使用 C# 和 ArcGIS SDK 连接 GeoDB?
【问题讨论】:
-
当你说“GeoDB”时,你的意思是一个普通的文件地理数据库,对吧?
标签: c# geolocation arcgis
我有一个扩展名为 .gdb 的 GeoDB。有没有人尝试过使用 C# 和 ArcGIS SDK 连接 GeoDB?
【问题讨论】:
标签: c# geolocation arcgis
下面的 ArcObjects 代码要求您已签出许可证。 (如何完成取决于您安装的 ArcGIS 版本。例如,对于 ArcGIS 9.3.1,调用 IAoInitialize.Initialize 就足够了。在 ArcGIS 10 中,您还需要首先通过调用绑定到产品ESRI.ArcGIS.RuntimeManager.BindLicense.)
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesGDB;
…
IWorkspaceFactory wsFactory = new FileGDBWorkspaceFactory(); // (see P.S. below)
IWorkspace ws = wsFactory.OpenFromFile(@"\path\to\your\file.gdb", hWnd);
然后,您可以通过将ws 转换为IFeatureWorkspace 并使用该接口的方法(例如OpenTable、OpenFeatureClass 等)打开文件地理数据库中的要素类、表等。
P.S.: ESRI 实际上建议使用
Activator.CreateInstance而不是new创建工作区工厂(作为单例对象):Type wsFactoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory wsFactory = (IWorkspaceFactory)Activator.CreateInstance(wsFactoryType); …(我之前没有提到这一点,因为它给简单的代码示例增加了一些复杂性。)
【讨论】: