Приведенный ниже код 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
и т. Д.
PS: ESRI фактически рекомендует, чтобы фабрики рабочих пространств (являющиеся одноэлементными объектами) создавались с Activator.CreateInstance
вместо new
:
Type wsFactoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory");
IWorkspaceFactory wsFactory = (IWorkspaceFactory)Activator.CreateInstance(wsFactoryType);
…
(я не упоминал об этом ранее, потому что это добавляет некоторую сложность простому примеру кода.)