将包含 ST_Geometry 列的表注册到 ArcSDE

可以使用 ArcSDE 管理命令 sdelayer –o register 将空间表手动注册到 ArcSDE。注册到 ArcSDE 后,该空间表则称为图层。

注注:

ESRI 建议您在 ArcGIS 中创建要素类。在 ArcGIS 中创建要素类可以确保要素类正确创建。不过,ESRI 了解某些 SQL 用户和应用程序开发人员想要用其他方式处理空间表。因此,ESRI 支持对利用 SQL 或第三方应用程序创建的外部空间表进行注册。

请记住,对于要注册到 ArcSDE 的表,至少必须满足下列条件:

注注:

如果表中不含有任何数据,并且将表注册到 ArcSDE 但未指定有效的 SRID,那么将使用默认的 SRID。对于包含 ST_Geometry 列的 PostgreSQL 和 Oracle 表,默认的 SRID 是 0。SRID 0 主要用于测试目的,它实际上并不指定空间参考。如果您以后尝试添加具有有效 SRID(不为 0)的要素,那么添加将失败,因为 SRID 不相同。SRID 指定给表之后,就无法更改;必须删除图层,然后利用正确的 SRID 重新创建图层。

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

步骤:
  1. 在 SQL 中,根据在工作流:对现有的要素类使用 SQL 中创建的现有建筑物要素类,创建表 comm_bldgs。这么做会利用和建筑物要素类相同的定义(如相同的列和数据类型)来创建 comm_bldgs 表。
    CREATE TABLE comm_bldgs 
    AS SELECT * FROM buildings
    WHERE subtype = 'COM';
  2. 将 comm_bldgs 要素类注册到 ArcSDE 时,所使用的 SRID 将和用于建筑物要素类的 SRID 相同。要查看该 SRID,请使用 sdelayer –o describe_long。
    提示提示:

    您还可以在 Oracle 中查询 ST_GEOMETRY_COLUMNS 表,在 Informix 和 DB2 中查询 geometry_columns 表,在 PostgreSQL 中查询 sde_geometry_columns 表,以获取 SRID。

    sdelayer –o describe_long –l buildings,shape 
    –u <user> –p <pw>  –s <server> [–D <database>] 
    –i <service_or_direct_connect_string>
    
    Layer        Administration Utility
    
    Layer Description : <None>
    Table Owner : me
    Table Name : buildings
    Spatial Column : shape
    Layer Id : 15
    SRID : 3
  3. 使用 sdelayer 命令将要素类注册到 ArcSDE。利用 –R 选项在最后一步指定 SRID。您还可以利用 -E 选项指定图层的范围。
    sdelayer –o register –l comm_bldgs,shape –e a -t ST_GEOMETRY
    –C OBJECTID,SDE –R 3 -E -690.389,-512.144,610.389,600.144
    –u <user> –p <pw> –s <server> [–D <database>] 
    –i <service_or_direct_connect_string>  
    注注:

    如果 DBTUNE 表中 DEFAULTS 关键字下的 GEOMETRY_STORAGE 参数未设置为 ST_GEOMETRY,则还必须通过 -k 选项提供关键字。

这样,表即被注册到 ArcSDE,成为图层。这会向 Oracle、DB2 或 Informix 中的 LAYERS、GEOMETRY_COLUMNS、COLUMN_REGISTRY 和 TABLE_REGISTRY 系统表,或者 PostgreSQL 中的 sde_layers、sde_geometry_columns、sde_column_registry 和 sde_table_registry 表中添加一条记录。此时,您可以在 ArcGIS Desktop 中查看、选择要素类,以及对其执行非版本化编辑。

要在要素类中使用地理数据库功能,请将要素类注册到地理数据库

相关主题


7/10/2012