Arc engine - Geodatabase.

时间:2023-03-10 07:00:06
Arc engine - Geodatabase.

  Geodatabase以层次结构的数据对象来组织地理数据。

  这些数据对象存储在要素类(Feature Classes)、对象类(0bject classes)和数据集(Feature datasets)中。

  Object Class可以理解为是一个在Geodatabase中储存非空间数据的表。

  而Feature class是具有相同几何类型和属性结构的要素(Feature)的集合。
  要素数据集(Feature datasets)是共用同一空间参考要素类的集合。

  要素类(Feature Class)储存可以在要素数据集(Feature datasets)内部组织简单要素,也可以独立于要素数据集(Feature datasets)。独立于要素数据集(Feature datasets)的简单的要素类(Feature Class)称为独立要素类(Feature class)。存储拓扑要素( Feature )的要素类必须在要素数据集(Feature dataset)内,以确保一个共同的空间参考.

  注意:表的地位和要素数据集是等同的,也就是说,表是不能存储在要素数据集中.
  

  Geodatabase的基本体系结构包括要素数据集、栅格数据集、TIN数据集、独立的对象类、独立的要素类、独立的关系类和属性域等,如下图:Arc engine - Geodatabase.

  工作空间(WorkSpace)在逻辑上是一个包含空间数据集和非空间数据集的容器,我们往日所说的要素类,栅格数据集,表等都存储在这个工作空间中.

  注意,shapefile是Esri早期的空间数据格式,以文件管理,shapefile文件所在的文件夹也被抽象为一个workspace,所以要用到到shapefile,就要用到shapefileworkspacefactory这个工厂对象.

  数据集(Dataset)是一个代表了Workspace中所谓数据集合的抽象类,它是一个集合.
  但是在理解数据集对象的时候,要用广义的概念来看待,不要从我们在数据库里存储的那个物理结构去理解,否则会走入误区,应该知道所有放在工作空间的对象都是一种数据集对象,也就是说Table,FeatureClass等都是数据集,也就是说数据集中的数据可以是一个字段,一行记录,一张表等。
  Workspace其实也是一种数据集,它也继承了IDataset 这个接口。在数据库中一切对象都可以看做是数据集,不管是要素类,还是表,或者栅格数据.
  那么怎么区分我们得到的到底是表,还是要素类?IDataset 有一个很重要的属性IDataset.Type,通过这个属性我们就可以判断.