Qu'est-ce que le type de stockage ST_Geometry ?

Le type de données ST_Geometry implémente les spécifications SQL 3 pour les types de données définis par l'utilisateur (UDT), qui permettent de créer 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. Il permet un accès à la géodatabase et à la base de données en langage SQL (structured query language) conforme aux normes de l'ISO (International Organization for Standards) et de l'OGC (Open Geospatial Consortium). Ce stockage étend les capacités de la base de données en permettant le stockage d'objets qui représentent des entités géographiques (points, lignes et polygones). Il a été conçu pour utiliser de façon efficace les ressources de la base de données, pour être compatible avec les fonctions de la base de données, telles que la réplication et le partitionnement et pour fournir un accès rapide aux 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.

ST_Geometry
La superclasse ST_Geometry et 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

  • Géométrie à zéro dimension, occupant une seule localisation dans l'espace de coordonnées
  • Dispose d'une seule valeur de coordonnée x,y, est toujours simple et a une limite de valeur NULL

ST_LineString

  • Objet linéaire stocké comme séquence de points définissant un chemin interpolé linéaire
  • Les objets ST_LineString ont une longueur.
  • L'objet ST_LineString est simple s'il n'intersecte pas son intérieur.
  • Les extrémités (la limite) d'un objet ST_LineString fermé occupent le même point dans l'espace.
  • Un objet ST_LineString est une boucle s'il est à la fois fermé et simple.
  • Les extrémités forment normalement la limite d'un objet ST_LineString, sauf s'il est fermé auquel cas la limite est NULL.
  • L'intérieur d'un objet ST_LineString est le chemin continu entre les extrémités, sauf s'il est fermé auquel cas l'intérieur est continu.

ST_Polygon

  • Surface bidimensionnelle stockée comme une séquence de points définissant sa boucle de contour extérieur et 0 ou plus boucles intérieures
  • Un objet ST_Polygon dispose d'une surface et est toujours simple.
  • La boucle extérieure et toutes les boucles intérieures définissent la limite d'un objet ST_Polygon, et l'espace situé entre les boucles définit l'intérieur de l'objet ST_Polygon.
  • Les boucles d'un objet ST_Polygon peuvent s'intersecter en un point tangent mais ne peuvent se croiser.

ST_MultiPoint

  • Ensemble d'éléments ST_Point
  • A une dimension de 0
  • Un objet ST_MultiPoint est simple si ses éléments occupent tous des espaces de coordonnées différents.
  • La limite d'un objet ST_MultiPoint est NULL.

ST_MultiLineString

  • Ensemble d'éléments ST_LineString
  • Les objets ST_MultiLineString ont une longueur.
  • Les objets ST_MultiLineString sont simples s'ils ne s'intersectent qu'aux extrémités des éléments ST_LineString.
  • Les objets ST_MultiLineString sont non simples si les intérieurs des éléments ST_LineString s'intersectent.
  • La limite d'un objet ST_MultiLineString est constituée par les extrémités non intersectées des éléments ST_LineString.
  • L'objet ST_MultiLineString est fermé si tous ses éléments ST_LineString sont fermés.
  • La limite d'un objet ST_MultiLineString est NULL si toutes les extrémités de tous les éléments sont intersectées.

ST_MultiPolygon

  • Ensemble de polygones
  • Les objets ST_MultiPolygon ont une surface.
  • La limite d'un objet ST_MultiPolygon est la longueur cumulée des boucles extérieures et intérieures de ses éléments.
  • L'intérieur d'un objet ST_MultiPolygon est défini par les intérieurs cumulés de ses éléments ST_Polygon.
  • La limite d'un objet ST_MultiPolygon ne peut s'intersecter qu'en un point tangent.

Sous-types ST_Geometry

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.

Thèmes connexes

5/10/2014