Al registrar una columna de ST_Geometry en PostgreSQL

Si utiliza SQL para crear una tabla que contiene una columna de ST_Geometry, puede registrar la columna de utilizar una referencia espacial específica y dimensionalidad. De esa manera, los usuarios que agregan registros a través SQL no pueden agregar registros accidentalmente que utilicen una referencia espacial diferente o con diferentes dimensiones. Para ello, utilice la función sde.st_register_spatial_column. La sintaxis para utilizar esta función es la siguiente:

SELECT st_register_spatial_column('<database_name>', '<schema_name>',  '<table_name>', '<spatial_column_name>', <srid>, <coordinate_dimension>)

El SRID que especifique debe existir en la tabla public.sde_spatial_references. La dimensión de coordenadas indica si los datos solo tienen coordenadas x, y (2), coordenadas x, y, z (3), coordenadas x, y, z, m (4), coordenadas x, y, m (5). Por defecto, si no se especifica una dimensión de coordenadas, los datos se registran como que tienen solo dimensiones x, y.

Los siguientes pasos proporcionan un ejemplo de cómo registrar una columna de ST_Geometry en PostgreSQL para utilizar un SRID específico y dimensionalidad:

Pasos:
  1. Abra una ventana de comando o shell y registro en psql. Conéctese a la base de datos que contiene la tabla que desea registrar la columna de ST_Geometry.

    En este ejemplo, el usuario se conecta a la base de datos spatdat psql spatdat horace.

  2. En la ventana de SQL, solicite la función st_register_spatial_column para registrar la columna espacial de la tabla para utilizar un SRID específico y dimensionalidad.

    Aquí, la columna de la tabla de puntos de referencia de georreferenciación en el esquema cleo está registrado con un SRID de 104199 y x, y, z dimensionalidad:

    SELECT sde.st_register_spatial_column('spatdat', 'cleo',  'waypoints', 'geo', 104199, 3);
    

    El usuario debe tener por lo menos privilegios SELECT en la tabla cleo.waypoints para registrar la columna espacial.

  3. Para confirmar que la tabla se registró correctamente, puede utilizar las funciones y st_isregistered_spatial_column y st_get_coord_dimension para devolver la información registrada.

    La función st_isregistered_spatial_column devuelve 1 (verdadero) si la columna está registrada con el SRID que se especificó.

    SELECT sde.st_isregistered_spatial_column('spatdat', 'cleo',  'waypoints', 'geo', 104199);  st_isregistered_spatial_column -------------------------------- 1
    

    La función st_coord_dimension devuelve qué dimensiones de la tabla puede almacenar:

    SELECT sde.st_get_coord_dimension('cleo', 'waypoints',  'geo', 104199);  st_get_coord_dimension -------------------------------- xyz
    

Temas relacionados

9/11/2013