ArcEngine 中数据的访问
数据 是 GIS 的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提。ArcGIS 支持的数
据格式比较丰富,对不同的数据格式支持的程度也有很大差异。本文主要介 绍一下以下八种数据格式在
ArcGIS Engine 中如何访问。对 ArcGIS 桌面应用有一定了解的读者更适合阅读本文。本文的示例代码是
用 C#编写。
1. Shapefile
2. Coverage
3. Personal Geodatabase
4. Enterprise Geodatabase
5. Tin
6. Raster
7. CAD
8. RDBMS
在通过 ArcGIS 访问数据之前,需要首先明确一下什么 是"工作空间"。在 ArcGIS 中工作空间指存放数据
的位置,ArcGIS 访问数据的机制是先打开数据对应的工作空间,然后用工作空间访问数据。对于不同 的
数据格式,工作空间的具体情况也是不一样的,下面分别进行阐述。
Shapefile
Shapefile 是文件型的空间数据格式,以文件的形式在磁盘上进行存储空间数据和属性数据。下面的示例
代码是打开位于 D:"Data 文件夹下的文件名为 Cities 的 Shapefile 要素类。对于 Shapefile 来说工作空间就
是它所在的文件夹,打开工作空间需要使 用对应的工作空间工厂,即
ShapefileWorkspaceFactoryClass,然后再调用 IWorkspaceFactory 的 OpenFromFile 方法就可以得到一
个工作空间了,这也是设计模式中工厂方法的体现。工作空间工厂的打开方法返回的是一般意义的工作空
间,根据具体 数据还需要进行接口转换,因为 Shapefile 是矢量数据,所以把工作空间接口跳转到
IFeatureWorkspace,从而读取其中的要素类,这一 点对于接下来的几个数据格式也是同样的打开方式。
IWorkspaceFactory pWorkspaceFactory;
pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
IFeatureWorkspace pFeatWS;
pFeatWS = pWorkspaceFactory.OpenFromFile(@"D:"Data"", 0) as IFeatureWorkspace;
//打开一个要素类
IFeatureClass pFeatureClass = pFeatWS.OpenFeatureClass("Cities");