Astuces concernant l'enregistrement de tables existantes comportant une colonne ST_Geometry
Utilisation de tables ST_Geometry existantes
ArcSDE peut utiliser correctement les tables contenant des colonnes ST_Geometry créées à l'aide de SQL (quelquefois nommées tables tierces) dans la mesure où chaque table satisfait les conditions préalables suivantes :
- Elle doit appartenir à l'utilisateur qui enregistre la table.
- Elle doit comporter une colonne ST_Geometry unique.
- Elle ne doit pas avoir d'autres colonnes d'un type défini par l'utilisateur.
- Elle doit avoir un type de géométrie unique (points, lignes ou polygones). Les géométries peuvent être de type multi-parties.
- La géométrie doit être valide, autrement son accès peut avoir des résultats inattendus.
Procédure d'inscription de tables tierces contenant des colonnes ST_Geometry
La commande d'administration ArcSDE sdelayer –o register permet d'inscrire une table spatiale comme classe d'entités. L'inscription de tables contenant une colonne ST_Geometry suppose le respect des conditions préalables décrites dans la section antérieure.
Les tables à inscrire peuvent être vides ou contenir des données.
Inscription de tables contenant des données
Lors de l'inscription d'une table contenant déjà des données, celles-ci disposent d'un système de référence spatiale attribué. Ainsi, lors de l'inscription de la table dans ArcSDE, il est inutile de spécifier l'ID de référence spatiale (SRID) avec l'option –R. ArcSDE vérifie et utilise l'identifiant SRID défini du premier enregistrement de la table.
Pour être accepté, le SRID doit toutefois exister dans la table ST_SPATIAL_REFERENCES. Pour insérer le système de référence spatiale nécessaire si celui-ci ne figure pas encore dans la table ST_SPATIAL_REFERENCES, il est conseillé de démarrer ArcCatalog et de se connecter à la géodatabase, puis de créer une nouvelle classe d'entités utilisant le système de référence spatiale souhaité et le stockage ST_Geometry. Ainsi, la table ST_SPATIAL_REFERENCES est renseignée avec le SRID nécessaire et ArcCatalog calcule automatiquement les décalages x, y, z- et m-, ainsi que les unités correspondantes et l'étendue de la couche. Il est également possible d'insérer la référence spatiale à l'aide de SQL, mais vous devez être en mesure de calculer correctement les décalages x, y, z-, et m-, ainsi que les unités correspondantes par vous-même.
L'exemple suivant présente l'inscription de la table TOWERS contenant des enregistrements de géométries de point (–e p) dans une colonne spatiale SHAPE. La référence spatiale étant connue, elle ne doit pas être spécifiée lors de l'inscription de la table dans sdelayer. L'option –C permet d'ajouter à la table une colonne FID unique de valeur non NULL, à utiliser comme colonne d'ID d'enregistrement.
sdelayer –o register –l towers,shape –e p –C fid,SDE –u brooke –p pwd19
L'inscription de la colonne d'ID d'enregistrement comme gérée par l'utilisateur peut permettre d'accélérer l'inscription des tables contenant un grand nombre d'enregistrements.
sdelayer –o register –l towers,shape –e p –C fid,USER –u brooke –p pwd19
Si vous inscrivez la colonne des identifiants d'entités comme gérée par l'utilisateur, puis inscrivez la classe d'entités dans la géodatabase, ArcGIS ajoute une colonne d'ID d'enregistrement supplémentaire, appelée object_ID. ArcGIS assure la mise à jour des valeurs de cette colonne. Si la table contient un grand nombre d'enregistrements, l'ajout de cette colonne object_ID supplémentaire peut nécessiter un certain temps.
Inscription de tables spatiales ne contenant pas de données
Si la table ne contient pas de données et ne dispose d'aucun SRID attribué, vous devez spécifier un SRID lors de son inscription. Pour ce faire, utilisez l'option –R. Le SRID spécifié alors doit déjà exister dans la table SPATIAL_REFERENCES de la géodatabase et correspondre au SRID défini par ArcSDE.
Comme décrit dans la section précédente, pour insérer le système de référence spatiale nécessaire dans la table SPATIAL_REFERENCES, il est conseillé de démarrer ArcCatalog et de se connecter à la géodatabase, puis de créer une nouvelle classe d'entités utilisant le système de référence spatiale souhaité et le stockage ST_Geometry. Effectuez ensuite une requête sur le système SPATIAL_REFERENCES pour obtenir le SRID attribué au système de référence spatiale spécifié pour la classe d'entités. Utilisez ce SRID lors de l'inscription de la table spatiale.
L'exemple suivant présente l'inscription dans ArcSDE d'une table vide nommée DRAINAGE. La table contient déjà une colonne de nombres entiers, unique et de valeur non NULL nommée ID, qui est utilisée comme colonne d'ID d'enregistrement. Le SRID est spécifié à l'aide de l'option –R.
sdelayer –o register –l drainage,line –e l+ –C id,SDE –R 6 –u hortence –p topsecret
Si la table ne contient ni données, ni SRID attribué, et si vous n'en spécifiez aucun lors de l'inscription de la table dans ArcSDE, elle recevra la valeur SRID par défaut de 0. Ce SRID n'existe que pour la documentation ou à titre d'exemple et ne doit pas être utilisé avec les données de production. Les spécifications correspondant à ce SRID sont les suivantes :
FalseX |
- 400 |
FalseY |
- 400 |
XYUnits |
1000000000 |
FalseZ |
- 100000 |
ZUnits |
10000 |
FalseM |
- 100000 |
MUnits |
10000 |
XYCluster_Tol |
0.000000008983153 |
ZCluster_Tol |
.001 |
MCluster_Tol |
.001 |
projection |
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0],UNIT["Degré",0.0174532925199433]] |
Auth_srid |
4326 |
Auth_name |
EPSG |
Pour plus d'informations sur l'utilisation de la commande sdelayer, consultez le manuel ArcSDE Administration Command Reference fourni avec le composant ArcSDE d'ArcGIS Server au niveau Enterprise.
La commande sdelayer effectue uniquement l'ajout de la table aux tables système ArcSDE. Pour activer les fonctionnalités de géodatabase d'ArcGIS Desktop, telles que la topologie, le versionnement et les réseaux, il est également nécessaire d'inscrire la table dans la géodatabase. Pour plus d'informations, reportez-vous à la rubrique Enregistrement d'une table dans la géodatabase.