有关注册具有 ST_Geometry 列的现有表的提示

使用现有 ST_Geometry 表

只要这些表符合以下先决条件,ArcSDE 便可以顺利使用包含 ST_Geometry 列(通过 SQL 创建)的表(有时称为第三方表):

注册包含 ST_Geometry 列的第三方表

通过 ArcSDE 管理命令 sdelayer –o register 可将空间表注册为要素类。要注册包含 ST_Geometry 列的表,必须符合前文所述先决条件。

注册的表可以为空或包含数据。

注册包含数据的表

对于包含数据的表,其中的数据将分配有空间参考系统。这意味着将表注册到 ArcSDE 时,无需通过 –R 选项指定空间参考 ID (SRID)。ArcSDE 将检查表中第一个记录的已定义 SRID,然后使用它。

但请注意,SRID 必须存放在 ST_SPATIAL_REFERENCES 表中才能使用。如果 ST_SPATIAL_REFERENCES 表中没有所需的空间参考系统,建议您启动 ArcCatalog,连接至地理数据库,然后创建一个使用所需空间参考系统和 ST_Geometry 存储的新要素类。执行此操作时,ST_SPATIAL_REFERENCES 表中将填入所需 SRID,并且 ArcCatalog 会为您计算出 x,y、z 和 m 偏移以及单位和图层范围。您也可以使用 SQL 来插入空间参考,但这样做时,必须保证您自己计算的 x,y、z 和 m 偏移以及单位正确无误。

在下例中,将注册空间列 SHAPE 中包含点几何 (–e p) 记录的表 TOWERS。由于空间参考已知,因此用 sdelayer 注册此表时无需指定空间参考。通过 –C 选项可以将一个唯一的非空列 FID 添加到表中作为行 ID 列。

sdelayer –o register –l towers,shape –e p –C fid,SDE –u brooke –p pwd19

对于包含大量记录的表,如果将行 ID 列注册为用户维护,则注册时间会缩短。

sdelayer –o register –l towers,shape –e p –C fid,USER –u brooke –p pwd19

但是,如果将要素标识符列注册为用户维护,然后将要素类注册到地理数据库,则 ArcGIS 会再添加一个要素标识符列 object_ID。并且将由 ArcGIS 维护此列的值。如果此表包含大量记录,添加此 object_ID 列可能需要一些时间。

注册不包含数据的空间表

如果此表不包含数据,也没有分配 SRID,则注册此表时需要指定 SRID。这通过 –R 选项即可实现。此时指定的 SRID 必须位于地理数据库的 SPATIAL_REFERENCES 表中,并与 ArcSDE 定义的 SRID 对应。

如前文所述,要将希望使用的空间参考系统填入 SPATIAL_REFERENCES 表,您需要启动 ArcCatalog,连接至地理数据库,然后创建一个使用所需空间参考系统和 ST_Geometry 存储的新要素类。然后,查询 SPATIAL_REFERENCES 系统以便找出分配给为要素类指定的空间参考系统的 SRID。注册空间表时请使用该 SRID。

在下例中,将空表 DRAINAGE 注册到 ArcSDE。此表已包含一个唯一的非空整数型列 ID,此列将用作行 ID 列。通过 –R 选项指定 SRID。

sdelayer –o register –l drainage,line –e l+ –C id,SDE –R 6 –u hortence –p topsecret

如果此表不包含数据或未分配 SRID,并且将此表注册到 ArcSDE 时也不指定 SRID,则它将被指定为使用默认的 SRID 值 0。此 SRID 仅作采样和存档之用,不建议用于生产数据。此 SRID 的详细描述如下:

FalseX

- 400

FalseY

- 400

XYUnits

1000000000

FalseZ

- 100000

ZUnits

10000

FalseM

- 100000

MUnits

10000

XYCluster_Tol

0.000000008983153

ZCluster_Tol

.001

MCluster_Tol

.001

Projection

GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]

Auth_srid

4326

Auth_name

EPSG

默认 SRID 定义

有关使用 sdelayer 命令的详细信息,请参阅随企业级 ArcGIS Server 的 ArcSDE 组件附送的《ArcSDE 管理命令参考》。

通过 sdelayer 命令只能将此表添加至 ArcSDE 系统表。要顺利使用 ArcGIS Desktop 地理数据库功能(例如拓扑、版本管理和网络),还必须将表注册到地理数据库。请参阅将表注册到地理数据库了解详细信息。


7/10/2012