Le module IBM Informix Spatial DataBlade intègre un système d'information géographique (SIG) dans le noyau IDS (Informix Dynamic Server). Ce module applique la spécification SQL 3 de l'OGC (Open Geospatial Consortium) relative aux types définis par l'utilisateur (UDT), avec des colonnes capables de stocker des données spatiales, telles que la localisation d'un point de repère, d'une rue ou d'une parcelle.
Dans un système de gestion de base de données Informix, une géodatabase stocke ses données spatiales en les associant aux types de données Informix Spatial DataBlade. Ainsi, avant de créer une géodatabase dans une base de données Informix, vous devez inscrire Spatial DataBlade.
Pour plus d'informations sur Informix Spatial DataBlade et son installation, reportez-vous au Guide de l'utilisateur du module IBM Informix Spatial DataBlade. Le Guide d'installation et d'inscription du module DataBlade décrit également la procédure d'inscription des modules DataBlade.
Fonctionnement du module IBM Spatial DataBlade
Après l'installation d'Informix Spatial DataBlade, vous pouvez créer des tables spatialisées comprenant des colonnes spatiales. Elles sont appelées classe d'entités dans ArcGIS. Ces colonnes spatiales permettent l'insertion d'entités géographiques. Informix Spatial DataBlade effectue la conversion des données spatiales vers son format de stockage depuis les trois formats externes suivants :
- Représentation textuelle connue (WKT)
- Représentation binaire connue (WKB)
- Représentation de forme Esri
Les géodatabases dans les bases de données Informix utilisent la représentation de forme Esri.
Table de référence spatiale
Le système de référence spatiale identifie la matrice de transformation de coordonnées de chaque géométrie. OGC utilise le terme "géométrie" pour faire référence aux données spatiales bidimensionnelles. Tous les systèmes de référence spatiale connus de la base de données sont stockés dans la table spatial_references. La table spatial_references stocke un enregistrement par référence spatiale de la base de données.
Les fonctions internes utilisent les paramètres d'un système de référence spatiale pour la conversion et la mise à l'échelle des coordonnées à virgule flottante de la géométrie en nombres entiers positifs avant le stockage. Une fois l'extraction effectuée, les coordonnées sont restaurées à leur format à virgule flottante externe.
Les coordonnées à virgule flottante sont converties en nombres entiers par soustraction des valeurs falsex et falsey, ce qui les ramène à une origine constante ; elles sont mises à l'échelle par multiplication des unités x,y, l'addition d'une demi-unité et tronquage du reste.
Les coordonnées z et les mesures, facultatives, sont traitées de la même façon avec l'application respective de falsez et falsem pour la conversion et de z-units et m-units pour la mise à l'échelle.
Le SRID, la clé primaire de spatial_references, contient un nombre unique pour chaque système de référence spatiale.
Le système de référence spatiale est attribué à une géométrie lors de sa construction. Il doit figurer dans la table spatial_references. Toutes les géométries d'une colonne doivent avoir le même système de référence spatiale.
Lors de chaque création de classe d'entités, ArcGIS recherche un système de référence spatiale assorti dans la table spatial_references. S'il existe, son SRID est attribué à la classe d'entités ; sinon, ArcGIS ajoute un nouveau système de référence spatiale à la table spatial_references et l'attribue à la classe d'entités.
Lorsque vous importez des données vers une classe d'entités à partir d'une autre source de données (une couverture ou un fichier de formes, par exemple), les coordonnées des données doivent être ajustées à l'étendue du système de référence spatiale. Chaque entité figurant au-delà de l'étendue du système de référence spatiale est rejetée.
Classes d'entités dans une base de données Informix
Une table spatiale Informix peut comprendre une ou plusieurs colonnes spatiales, mais ArcGIS ne peut utiliser qu'une colonne spatiale d'une classe d'entités. Les colonnes spatiales sont définies à l'aide d'un type UDT d'Informix Spatial DataBlade. Une colonne spatiale peut uniquement accepter des données du type exigé par la colonne spatiale. Par exemple, une colonne de type de ST_Polygon rejette les nombres entiers, les caractères, et même les autres types de géométrie non surfaciques.
Lorsqu'ArcGIS crée une classe d'entités dans Informix, il génère également une colonne d'identifiant d'objet (Object ID). La colonne d'identifiant d'objet unique contient un entier non nul nécessaire aux clients ArcGIS pour qu'ils puissent assurer le suivi des jeux de sélection.
ArcGIS ajoute également un enregistrement dans la table geometry_columns lors de la création d'une classe d'entités dans une géodatabase dans Informix. Les applications utilisant Informix Spatial DataBlade sont chargées de l'insertion d'un enregistrement dans la table geometry_columns à chaque ajout d'une colonne spatiale à la base de données.
Conseils pour l'utilisation de tables Informix existantes avec ArcGIS
Les applications non ArcGIS peuvent créer des tables avec des colonnes spatiales dans Informix. ArcGIS a été conçu pour utiliser des tables contenant des colonnes spatiales créées par d'autres applications ou à l'aide de SQL (parfois nommées tables tierces) dans la mesure où la table satisfait certaines exigences, dont les suivantes :
- Elle doit comporter une colonne unique d'entiers non nuls actualisée par la base de données qui servira de colonne d'identifiant d'objet.
- Elle ne peut pas contenir de colonnes d'un type défini par l'utilisateur, autre qu'une colonne ST_Geometry.
- Elle ne peut contenir qu'une seule colonne ST_Geometry. Pour accéder aux données d'une table qui contient plusieurs colonnes ST_Geometry, créez une vue de la table ne contenant qu'une colonne ST_Geometry.
- Elle doit comporter un seul ID de référence spatiale pour tous les enregistrements de la table.
- Pour inscrire la table spatiale auprès de la géodatabase, vous devez en être le propriétaire. Une fois la table inscrite auprès de la géodatabase, ArcGIS ajoute sa propre colonne d'identifiant d'objet et en assure la maintenance.