我有一个扩展名为 .gdb 的 GeoDB。有没有人尝试过使用 C# 连接 GeoDB 和 ArcGIS SDK?
最佳答案
下面的 ArcObjects 代码要求您 checkout 许可。 (如何完成取决于您安装的 ArcGIS 版本。例如,对于 ArcGIS 9.3.1,调用 IAoInitialize.Initialize
就足够了。在 ArcGIS 10 中,您还需要先通过调用绑定(bind)到产品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
并使用该接口(interface)的方法,例如 OpenTable
, OpenFeatureClass
等
P.S.: ESRI actually recommends that workspace factories (being singleton objects) be created with
Activator.CreateInstance
instead ofnew
:Type wsFactoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory wsFactory = (IWorkspaceFactory)Activator.CreateInstance(wsFactoryType); …
(I hadn't mentioned that earlier because it adds some complexity to a simple code example.)
关于c# - 将 GeoDB 连接到 ASP.Net Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7074696/