Ejemplo: Crear una vista espacial en PostgreSQL con SQL y registrarla
Puede utilizar SQL para crear una vista espacial en una geodatabase de ArcSDE al incluir la columna espacial en la definición de la vista. Si utiliza SQL para crear la vista espacial, debe registrarla con ArcSDE para consultarla con ArcGIS y visualizarla como una clase de entidad.
En este ejemplo, se crea una vista espacial entre la tabla de empleados y la clase de entidad regiones.
Crear una vista con una columna espacial
Defina la vista para incluir la columna espacial y el Id. de objeto de la clase de entidad junto con otras columnas de atributos que desee en la vista.
El propietario de la tabla de empleados y la clase de entidad regiones es el usuario gdb; por lo tanto, este ya tiene los privilegios necesarios para crear la vista.
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;
El reg_id es la columna de enteros, no nulos de la clase de entidad regiones que se utilizará como el Id. de fila cuando registre la vista con ArcSDE. Región es la columna espacial de la clase de entidad regiones.
Otorgar privilegios en la vista espacial
Una vez creada la vista, otorgue privilegios selectos al usuario dispatch1. Incluya WITH GRANT OPTION para permitir que el usuario dispatch1 otorgue privilegios en la vista a otros usuarios.
GRANT SELECT ON emp_region_vw TO dispatch1 WITH GRANT OPTION;
Registrar la vista con ArcSDE como una capa
Para consultar la vista espacial con ArcGIS, debe registrar la vista como una capa con ArcSDE. Al hacer esto se agregan registros a las tablas del sistema sde_layers y sde_geometry_columns de 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 columna espacial región en la vista utiliza el almacenamiento ST_GEOMETRY y almacena polígonos; por lo tanto, ST_GEOMETRY se especifica con la opción –t y a (área) se especifica con la opción –e. Estas opciones, junto con el resto excepto la opción –o, varían según los datos.
Para obtener más información acerca del comando sdelayer, consulte la Referencia sobre el comando de administración.