Example: Creating a spatial view in Informix using SQL and registering it

複雑さ: 初心者 データ要件: 独自のデータの使用

ビューの定義に空間列を含めることで、SQL を使用して ArcSDE ジオデータベースに空間ビューを作成できます。SQL を使用して空間ビューを作成する場合、空間ビューを ArcGIS で検索してフィーチャクラスとして表示するには、ビューを ArcSDE に登録する必要があります。

この例では、employees テーブルと region フィーチャクラスの間で空間ビューを作成します。

Create a view with a spatial column

フィーチャクラスの空間列およびオブジェクト ID の両方と、ビューに含めるその他の属性列を含むように、ビューを定義します。

employees テーブルと regions フィーチャクラスの所有者は gdb ユーザであるため、ユーザはビューの作成に必要な権限をすでに持っています。

CREATE VIEW emp_region_vw
AS SELECT (e.emp_name,e.emp_id,r.rname,r.reg_id,r.region) 
FROM employees e,region r 
WHERE e.emp_id = r.emp_id;

reg_id は regions フィーチャクラスの NULL でない整数列で、ビューを ArcSDE に登録するときに RowID として使用されます。region は、regions フィーチャクラスの空間列です。

Grant privileges on the spatial view

ビューを作成したら、続いて dispatch1 ユーザに SELECT 権限を付与します。WITH GRANT OPTION を指定して、dispatch1 ユーザにビューの権限を他のユーザに付与することを許可します。

GRANT SELECT 
ON emp_region_vw 
TO USER dispatch1 WITH GRANT OPTION;

Register the view with ArcSDE as a layer

To query the spatial view with ArcGIS, you must register the view as a layer with ArcSDE. Doing so adds records to the ArcSDE layers and geometry_columns system tables.

レイヤはビューの所有者が登録する必要があるため、-u および -p オプションを使用して gdb ユーザの名前とパスワードを指定する必要があります。

sdelayer -o register -l emp_region_vw,region -e a 
-t ST_GEOMETRY -C reg_id,USER -E 2.20,2.20,3.01,3.01 -R 1 
-s myidsserver -i sde:informix -D testdb -u gdb -p gdb.bdg

The values you provide for the options, except –o, will vary depending on your data.

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


7/10/2012