例:SQL を使用した PostgreSQL での空間ビューの作成と登録

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

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

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

空間列を持つビューの作成

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

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

psql testdb gdb
Enter password for user gdb:

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

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

空間ビューの権限の付与

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

GRANT SELECT 
ON emp_region_vw
TO dispatch1 WITH GRANT OPTION;

ArcSDE へレイヤとしてビューを登録

空間ビューを ArcGIS で検索するには、ビューをレイヤとして ArcSDE に登録する必要があります。このために、ArcSDE の sde_layers および sde_geometry_columns システム テーブルにレコードを追加します。

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 -i sde:postgresql -s mypgdbserver -D testdb 
-u gdb -p gdb.bdg

ビューの region 空間列は、ST_GEOMETRY 格納を使用してポリゴンを格納します。したがって、ST_GEOMETRY は -t オプションを使用して指定し、a(エリア)は -e オプションを使用して指定します。これらのオプションとその他のオプションはいずれも、-o オプションを除いて、実際のデータによって異なります。

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


7/10/2012