ST_Geometry 列を持つ既存のテーブルの登録に関するヒント

既存の ST_Geometry テーブルの使用方法

ArcSDE では、次の前提条件を満たしていれば、SQL で作成した ST_Geometry 列を持つテーブル(サードパーティ テーブルとも呼ばれます)を使用することができます。

ST_Geometry 列が含まれるサードパーティ テーブルの登録の実行

ArcSDE の sdelayer -o register 管理コマンドは、空間テーブルをフィーチャクラスとして登録します。ST_Geometry 列が含まれるテーブルを登録するには、前のセクションで述べた前提条件を満たす必要があります。

登録するテーブルは空でも、すでにデータが含まれた状態でもかまいません。

データがすでに含まれているテーブルの登録

データがすでに含まれているテーブルを登録する場合、データには空間参照系が割り当てられています。つまり、ArcSDE にテーブルを登録するときに、-R オプションで空間参照 ID(SRID)を指定する必要がありません。ArcSDE はテーブル内の最初のレコードに定義された SRID をチェックして、その値を使用します。

ただし、SRID を使用するには、その SRID が ST_SPATIAL_REFERENCES テーブルに存在している必要があります。必要な空間参照系がまだ ST_SPATIAL_REFERENCES テーブルにない場合は、ArcCatalog を起動して、ジオデータベースに接続し、必要な空間参照系と ST_Geometry 格納を使用する新規のフィーチャクラスを作成します。この操作を実行すると、必要な SRID が ST_SPATIAL_REFERENCES テーブルに挿入され、ArcCatalog によって x、y、z および m のオフセットと単位、レイヤ範囲が計算されます。SQL を使用して空間参照を挿入することも可能ですが、この場合は正確な x、y、z および m のオフセットと単位を自分で計算する必要があります。

次の例では、SHAPE という空間列にポイント ジオメトリ(-e p)が含まれている TOWERS というテーブルを登録します。空間参照はすでにわかっているので、sdelayer でテーブルを登録するときに空間参照を指定する必要はありません。-C オプションを使用することにより、一意な NULL 以外の列(FID)がテーブルに追加され、RowID 列として使用されます。

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

テーブルに大量のレコードが含まれる場合は、RowID 列をユーザ管理として登録した方が登録に時間がかからない場合があります。

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

ただし、フィーチャ ID 列をユーザ管理として登録してからフィーチャクラスをジオデータベースで登録すると、ArcGIS によって、フィーチャ ID 列の object_ID がもう 1 つ追加され、この列の値が自動管理の対象になります。テーブルに大量のレコードが含まれる場合は、この object_ID 列の追加に時間がかかることがあります。

データが含まれていない空間テーブルの登録

テーブルにデータが含まれず、SRID も割り当てられていない場合は、テーブルの登録時に SRID を指定する必要があります。これは -R オプションで実行できます。ここで指定する SRID はジオデータベースの SPATIAL_REFERENCES テーブルにすでに存在していなければならず、これは ArcSDE で定義された SRID に対応します。

前のセクションで説明したとおり、使用する空間参照系を SPATIAL_REFERENCES テーブルに挿入するには、ArcCatalog を起動して、ジオデータベースに接続し、必要な空間参照系と ST_Geometry 格納を使用する新規のフィーチャクラスを作成します。次に、SPATIAL_REFERENCES システム テーブルにクエリを実行して、フィーチャクラスに指定した空間参照系に割り当てられた SRID を検出します。空間テーブルの登録時にはこの SRID を使用します。

次の例では、空のテーブルの DRAINAGE が ArcSDE に登録されます。テーブルにはすでに、整数タイプの一意な NULL 以外の列(ID)が含まれており、これが RowID 列に使用されます。SRID は -R オプションで指定します。

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

テーブルにデータが含まれず、SRID も割り当てられていない場合に、SRID を指定せずにテーブルを ArcSDE に登録すると、0 というデフォルトの SRID 値が割り当てられます。この 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 コマンドを使用する方法については、『ArcSDE コマンド リファレンス』をご参照ください。

sdelayer コマンドでは、ArcSDE システム テーブルへのテーブルの追加だけが実行されます。トポロジ、バージョニング、ネットワークなどの ArcGIS Desktop ジオデータベースの機能を使用可能にするには、テーブルをジオデータベースにも登録する必要があります。詳細については、「ジオデータベースへのテーブルの登録」をご参照ください。


3/6/2012