ST_Geometry 列を含むテーブルの ArcSDE への登録

ArcSDE 管理コマンド sdelayer -o register を使用して、空間テーブルを ArcSDE に手動で登録できます。.空間テーブルは、ArcSDE に登録されると、レイヤと呼ばれるようになります。

メモメモ:

Esri は ArcGIS でフィーチャクラスを作成することを推奨します。ArcGIS でフィーチャクラスを作成した場合は、適切なフィーチャクラスの作成が保証されます。しかし空間テーブルを操作するときに別のオプションも使用したい SQL ユーザおよびアプリケーション開発者のために SQL またはサード パーティ アプリケーションを使用して作成された外部空間テーブルの登録もサポートされています。

ArcSDE にテーブルを登録するには、テーブルが少なくとも次の条件を満たしている必要があります。

メモメモ:

テーブルにデータが含まれず、有効な SRID を指定せずにテーブルを ArcSDE に登録した場合は、デフォルトの SRID が使用されます。ST_Geometry 列を持つ PostgreSQL および Oracle テーブルの場合、デフォルト値は 0 になります。SRID 0 は主としてテスト用に使用され、実際に空間参照を指定するものではありません。後で、0 以外の有効な SRID を持つフィーチャを追加しようとすると、それらの SRID 値が異なるため操作が失敗します。テーブルに割り当てられたSRID を後から変更することはできないため、レイヤを削除し、正しい SRID を使用してレイヤを再作成する必要があります。


sdelayer コマンドを使用する方法の詳細については、『ArcSDE コマンド リファレンス』をご参照ください。

手順:
  1. ワークフロー: 既存のフィーチャクラスに対する SQL の使用」で作成した既存の buildings フィーチャクラスから、SQL で comm_bldgs テーブルを作成します。これにより、buildings フィーチャクラスと定義(列とデータ タイプなど)が同じ comm_bldgs テーブルが作成されます。
    CREATE TABLE comm_bldgs 
    AS SELECT * FROM buildings
    WHERE subtype = 'COM';
  2. comm_bldgs フィーチャクラスを ArcSDE に登録するときは、buildings フィーチャクラスで使用しているものと同じ 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 に登録します。直前のステップで取得した SRID を –R オプションで指定します。また、-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 でフィーチャクラスの表示、選択、バージョン非対応編集を行うことが可能になります。

フィーチャクラスでジオデータベースの機能を使用するには、フィーチャクラスをジオデータベースに登録します。

関連項目


3/6/2012