Exemple : Création d'une vue spatiale dans PostgreSQL avec SQL et inscription

Complexité : Débutant Conditions requises pour les données Utiliser vos propres données

Vous pouvez utiliser SQL pour créer une vue spatiale dans une géodatabase ArcSDE en incluant la colonne spatiale dans la définition de la vue. Lorsque vous utilisez SQL pour créer la vue spatiale, vous devez l'inscrire avec ArcSDE pour l'interroger avec ArcGIS et l'afficher en tant que classe d'entités.

Dans cet exemple, une vue spatiale est créée entre la table "employees" et la classe d'entités de régions.

Créer une vue avec une colonne spatiale

Définissez la vue en incluant la colonne spatiale et l'identifiant d'objet de la classe d'entités avec d'autres colonnes d'attributs que vous souhaitez afficher dans la vue.

Le propriétaire de la table "employees" et de la classe d'entités de régions est l'utilisateur gdb. Par conséquent, il possède déjà les privilèges nécessaires pour créer la vue.

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 est la colonne de nombres entiers de valeur non nulle issue de la classe d'entités de régions qui sert d'identifiant de ligne lorsque vous inscrivez la vue avec ArcSDE. "Region" est la colonne spatiale issue de la classe d'entités de régions.

Accorder des privilèges sur la vue spatiale

Une fois la vue créée, accordez des privilèges Select à l'utilisateur "dispatch1". N'oubliez pas d'inclure WITH GRANT OPTION pour permettre à l'utilisateur "dispatch1" d'accorder des privilèges sur la vue à d'autres utilisateurs.

GRANT SELECT 
ON emp_region_vw
TO dispatch1 WITH GRANT OPTION;

Inscrire la vue en tant que couche avec ArcSDE

Pour interroger la vue spatiale avec ArcGIS, vous devez l'inscrire en tant que couche avec ArcSDE. Cela a pour effet d'ajouter des enregistrements aux tables système sde_layers et sde_geometry_columns dans ArcSDE.

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

La colonne spatiale de régions dans la vue utilise le stockage ST_GEOMETRY et stocke les polygones ; par conséquent, ST_GEOMETRY est spécifié avec l'option –t et a (area pour surface) avec l'option –e. Ces options, ainsi que toutes les autres, à l'exception de l'option –o, dépendent de vos données.

Pour plus d'informations sur la commande sdelayer, consultez le manuel Administration Command Reference.


7/10/2012