PostgreSQL 地理数据库中的要素类

要素类是具有相同几何类型(点、线、面、多点、注记、尺寸或多面体)的地理要素集合。例如,可将表示某条铁路沿线所有车站的点存储于一个要素类中。而在另一个要素类中,可存储表示所有铁轨的线。

本主题介绍要素类在目录窗口、数据库管理系统 (DBMS) 和 XML 文档中的显示方式。

ArcGIS for Desktop 中的要素类

ArcGIS for Desktop 中可创建七种要素类:点、多点、线、面、注记、尺寸和多面体。

根据图标可在目录树中看出要素类的类型。下表显示了每种要素类的图标。

要素类图标

要素类类型

点或多点要素类图标

点或多点

线要素类图标

线

面要素类图标

注记要素类图标

注记

尺寸要素类图标

尺寸

多面体要素类图标

多面体

在 PostgreSQL 中,目录树中显示的要素类名称包括要素类所在数据库的名称、拥有该要素类的用户的名称以及要素类本身的名称。

例如,如果要素类 parcels 为用户 harley 所有,并且所在的地理数据库名为 stegageo,则该要素类在目录树中的名称为 stegageo.harley.parcels。

有关不同类型要素类的说明,请参见要素类基础知识

PostgreSQL 数据库中的要素类

PostgreSQL 数据库中的要素类地理数据库采用以下两种几何存储类型中的一种:ST_Geometry 或 PostGIS 几何。

所有要素类都有一个存储属性信息、对象 ID 和 Shape 字段的基表(又称业务表)。对象 ID 和 Shape 字段可以有不同的名称,但它们必须位于要素类的基表中。

提示提示:

注记和尺寸注记要素类的基表中另外还有一些必填字段。有关这些字段的列表,请参阅管理注记要素类属性尺寸注记要素属性

PostgreSQL 数据库中采用 ST_Geometry 存储的要素类

默认情况下,在 PostgreSQL 数据库管理系统 (DBMS) 的地理数据库中创建的要素类采用 ST_Geometry 存储。这意味着 ST_Geometry 列将被添加到要素类的业务表中用来存储空间属性。

ST_Geometry 为非实例化抽象超类,其子类可实例化。有关详细信息,请参见什么是 ST_Geometry 存储类型?

使用 ST_Geometry 存储通过 ArcGIS 创建要素类时,将在所有者的方案中创建带 ST_Geometry 列的业务表。此外,记录还将添加到 sde 用户方案中的 sde_layerssde_table_registrysde_geometry_columnssde_column_registrysde_spatial_references(如果定义了空间参考)和 gdb_items 表中以追踪要素类信息。sde 用户方案中的 gdb_itemtypes 表定义数据类型,此例中为要素类。

加载了数据后,数据库中将出现多个 i 表和存储过程。这些存储过程和 i 表用于为要素类生成要素 ID。i 表的名称中包含一个数字。该数字对应 sde_table_registry 表中要素类的 registration_id。强烈建议不要对这些表和存储过程进行编辑,而且也不支持这种编辑操作。

View a diagram of a feature class using ST_Geometry storage in PostgreSQL.

注注:

需要使用 Adobe Acrobat Reader 才能打开此文件。

虚线表示各列之间的隐含关系;实线表示各列之间明确定义的关系。

PostgreSQL 数据库中采用 PostGIS 几何存储的要素类

如果安装了 PostGIS 并且使用 PostGIS 模板创建数据库,则可使用扩展的熟知文本 (EWKT) 和扩展的熟知二进制 (EWKB) 空间类型来创建要素类。使用这种方法时,几何列将被添加到业务表中用来存储要素几何。在地理数据库中,这种几何存储类型称为 PG_GEOMETRY。

默认情况下,DEFAULTS DBTUNE 配置关键字中的 GEOMETRY_STORAGE 参数将被设置为 ST_GEOMETRY。如果要对大多数要素类使用 PG_GEOMETRY 存储类型,则可更改 DEFAULTS 关键字中的 GEOMETRY_STORAGE 参数,将其设置为 PG_GEOMETRY。(使用 sdedbtune 命令可更改 DBTUNE 参数设置。)也可以在通过 ArcGIS 或 ArcSDE 命令创建要素类时指定 PG_GEOMETRY 关键字。使用 PG_GEOMETRY 存储类型在 ArcGIS 中创建的要素类将在所有者方案中创建包含几何列的业务表。记录将被添加到 SDE 方案中所有与采用 ST_GEOMETRY 存储类型创建的要素类相同的表中。另外,还会将一条记录添加到公共方案中的 geometry_columns 表。因此,对于任何创建采用 PG_GEOMETRY 存储类型的数据的用户来说,必须对 public.geometry_columns 表具有 SELECT、INSERT、UPDATE 和 DELETE 权限。

警告警告:

因为不存在可用来对 public.geometry_columns 表中存储的表名称进行更新的 PostGIS 功能,所以无法对使用 PG_GEOMETRY 存储类型创建的要素类进行重命名。对要素类重命名将会在 public.geometry_storage 表中生成一个孤立行。

View a diagram of a feature class using PostGIS geometry storage in PostgreSQL.

注注:

需要使用 Adobe Acrobat Reader 才能打开此文件。

虚线表示各列之间的隐含关系;实线表示各列之间明确定义的关系。

有关地理数据库中 PostGIS 几何存储的详细信息,请参阅 ArcGIS 和 PostGIS 几何类型

XML 工作空间文档中存储的要素类

要素类在 DataElement 元素中进行定义。要素类的 DataElement 标签设置为 esri:DEFeatureClass 类型。要素类 DataElement 中还有定义要素类的其他元素,例如 Field、Domain、ConfigurationKeyword 和 SpatialReference 元素。

<DataElement xsi:type="esri:DEFeatureClass">
      <CatalogPath>/V=sde.DEFAULT/FC=stegageo.harley.parcels</CatalogPath> 
        <Name>stegageo.harley.parcels</Name> 
        <DatasetType>esriDTFeatureClass</DatasetType> 
        <DSID>13</DSID> 
        <Versioned>true</Versioned> 
        <CanVersion>true</CanVersion> 
        <HasOID>true</HasOID> 
        <OIDFieldName>objectid</OIDFieldName> 
        <Fields xsi:type="esri:Fields">
          <FieldArray xsi:type="esri:ArrayOfField">
            <Field xsi:type="esri:Field">
              <Name>objectid</Name> 
              <Type>esriFieldTypeOID</Type> 
              <IsNullable>false</IsNullable> 
              <Length>4</Length> 
              <Precision>10</Precision> 
              <Scale>0</Scale> 
              <Required>true</Required> 
              <Editable>false</Editable> 
              <AliasName>OBJECTID</AliasName> 
              <ModelName>OBJECTID</ModelName> 
            </Field>

用于定义要素类的所有其他元素

</DataElement>

相关主题

9/15/2013