Qu'est-ce que le type de stockage ST_Geometry ?
Le type de données ST_Geometry est un type de données définies par l'utilisateur qui vous permet de définir des colonnes qui stockent des données spatiales.
ST_Geometry est un résumé, une super classe non instanciée. Toutefois, ses sous-classes peuvent être instanciées. Un type de données instancié peut être défini comme une colonne de tableau pouvant accueillir des valeurs de son type.
Bien que vous puissiez définir une colonne en tant que type ST_Geometry, vous n'insérez pas de valeurs ST_Geometry dans la colonne puisqu'elle ne peut pas être instanciée. Vous insérez plutôt les valeurs de la sous-classe.
Le diagramme suivant montre la hiérarchie du type de données ST_Geometry et de ses sous-classes.
Sous-classes
Les sous-classe de ST_Geometry sont divisées en deux catégories : sous-classes de géométrie de base et sous-classe d'ensembles homogènes. Les géométries de base comprennent les objets ST_Point, ST_LineString et ST_Polygon, alors que les ensembles homogènes comprennent les objets ST_MultiPoint, ST_MultiLineString et ST_MultiPolygon. Comme ces noms l'indiquent, les ensembles homogènes sont des ensembles de géométries de base. En plus des propriétés communes aux géométries de base, les ensembles homogènes disposent également de quelques propriétés propres.
Chaque sous-classe stocke le type de géométrie que son nom indique ; par exemple, ST_MultiPoint stocke des multi-points. Le tableau suivant fournit une liste des sous-classes et leurs descriptions :
Sous-type |
Description |
---|---|
ST_Point |
|
ST_LineString |
|
ST_Polygon |
|
ST_MultiPoint |
|
ST_MultiLineString |
|
ST_MultiPolygon |
|
Notez que chaque sous-classe hérite des propriétés de la superclasse ST_Geometry mais possède également des propriétés qui lui sont propres. Les fonctions applicables au type de données ST_Geometry acceptent l'ensemble des types d'entités de sous-classe. Toutefois, certaines fonctions ont été définies au niveau de la sous-classe et acceptent uniquement certaines sous-classes. Par exemple, la fonction ST_GeometryN n'accepte en entrée que des valeurs de sous-type ST_MultiLinestring, ST_MultiPoint ou ST_MultiPolygon.
La fonction ST_GeometryType permet d'identifier la sous-classe d'un type ST_Geometry. La fonction ST_GeometryType part d'un ST_Geometry et renvoie la sous-classe instanciée sous forme d'une chaîne de caractères. La fonction ST_NumGeometries permet de connaître le nombre d'éléments de géométrie de base compris dans un ensemble homogène ; elle part d'un ensemble homogène et renvoie le nombre d'éléments de géométrie de base qu'il contient.