Inscription d'une colonne ST_Geometry dans PostgreSQL

Si vous utilisez SQL pour créer une table contenant une colonne ST_Geometry, vous pouvez enregistrer la colonne pour utiliser une référence spatiale et dimensionnalité spécifiques. De la sorte, les utilisateurs insérant des enregistrements au moyen du langage SQL ne peuvent pas insérer accidentellement des enregistrements utilisant une référence spatiale différente ou contenant des dimensions différentes. Pour cela, utilisez la fonction sde.st_register_spatial_column. La syntaxe permettant d'utiliser cette fonction est la suivante :

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

Le SRID spécifié doit figurer dans la table public.sde_spatial_references. La dimension de coordonnée indique si les données comportent uniquement des coordonnées x, y (2), des coordonnées x, y, z (3), des coordonnées x, y, z, m (4) ou des coordonnées x, y, m (5). Par défaut, si vous n'indiquez pas de dimension de coordonnée, les données sont enregistrées comme ayant uniquement les dimensions x, y.

Les étapes suivantes fournissent un exemple d'inscription d'une colonne ST_Geometry dans PostgreSQL pour utiliser un SRID et une dimensionnalité spécifiques.

Etapes :
  1. Ouvrez une invite de commande ou shell et connectez-vous à psql. Connectez-vous à la base de données qui contient la table pour laquelle vous souhaitez inscrire la colonne ST_Geometry.

    Dans cet exemple, l'utilisateur horace se connecte à la base de données spatdat psql spatdat horace.

  2. A l'invite de commande SQL, appelez la fonction st_register_spatial_column pour inscrire la colonne spatiale d'une table et utiliser un SRID et une dimensionnalité spécifiques.

    Ici, la colonne geo des tables waypoints dans la structure cleo est inscrite avec un SRID de 104199 et une dimensionnalité x,y,z :

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

    L'utilisateur horace doit bénéficier au moins des privilèges SELECT sur la table cleo.waypoints pour inscrire la colonne spatiale.

  3. Pour confirmer l'inscription correcte de la table, vous pouvez utiliser les fonctions st_isregistered_spatial_column et st_get_coord_dimension functions pour renvoyer les informations inscrites.

    La fonction st_isregistered_spatial_column renvoie 1 (vrai) si la colonne est inscrite avec le SRID spécifié.

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

    La fonction st_get_coord_dimension renvoie les coordonnées que la table peut stocker.

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

Thèmes connexes

9/12/2013