Les fonctions constructeur créent une géométrie à partir d'un texte de description connu ou d'un autre format de données, comme des fichiers binaires ou des fichiers de formes connus.
Lorsque vous proposez une description textuelle connue pour créer une géométrie, la coordonnée de mesure doit être indiquée en dernier. Par exemple, si votre texte contient les coordonnées pour x, y, z et m, celles-ci doivent être fournies dans cet ordre, et non comme x, y, m, z.
Une géométrie peut avoir zéro points ou plus. Une géométrie est considérée vide si elle a zéro points. Le sous-type point est la seule géométrie limitée à zéro ou un point ; tous les autres sous-types peuvent en comprendre zéro ou plus.
Les sections suivantes décrivent la superclasse et les sous-classes de géométrie, et fournissent une liste des fonctions permettant de créer l'une ou l'autre.
Superclasse de géométrie
La superclasse ST_Geometry ne peut pas être instanciée ; même si vous pouvez définir une colonne en tant que type ST_Geometry, les données réelles insérées peuvent être définies en tant qu'entités point, chaîne de lignes, polygon, multi-points, multilinestring ou multipolygon.
Les fonctions suivantes permettent de créer une superclasse pouvant contenir tous les types d'entités susmentionnés.
- ST_Geometry
- ST_GeomFromText (Oracle et SQLite uniquement)
- ST_GeomFromWKB
Sous-classes
Vous pouvez définir une entité en tant que sous-classe spécifique, auquel cas seul le type d'entité autorisé pour cette sous-classe pourra être inséré. Par exemple, ST_PointFromWKB peut uniquement construire des entités point.
ST_Point
Un objet ST_Point est une géométrie à zéro dimension, occupant une seule localisation dans l'espace de coordonnées. Un objet ST_Point a une seule valeur de coordonnée x,y, est toujours simple et a une limite NULL. Les objets ST_Point permettent de définir des entités telles que les puits de pétrole, les points de repère ou les sites de prélèvement d'échantillons d'eau.
Les fonctions qui créent un objet point sont les suivantes :
- ST_Point
- ST_PointFromText (Oracle et SQLite uniquement)
- ST_PointFromWKB
ST_MultiPoint
Un objet ST_MultiPoint est un ensemble d'objets ST_Point et, comme ses éléments, sa dimension est 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. Les objets ST_MultiPoint permettent de définir par exemple des réseaux de diffusion aérienne ou des foyers de déclaration d'une maladie.
Les fonctions qui créent une géométrie multi-points sont les suivantes :
- ST_MultiPoint
- ST_MPointFromText (Oracle uniquement)
- ST_MPointFromWKB
ST_LineString
Un objet ST_LineString est un objet linéaire stocké comme une séquence de points définissant un chemin interpolé linéaire. 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. Parmi les propriétés héritées de la superclasse ST_Geometry, les objets ST_LineString présentent une longueur. Les objets ST_LineString permettent généralement de définir des entités linéaires telles que les routes, les rivières et les lignes à haute tension.
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.
Les fonctions qui créent des objets linestring sont notamment les suivantes :
- ST_LineString
- ST_LineFromText (Oracle et SQLite uniquement)
- ST_LineFromWKB
- ST_Curve (Oracle et SQLite uniquement)
ST_MultiLineString
Un objet ST_MultiLineString est un ensemble d'éléments ST_LineString.
La limite d'un objet ST_MultiLineString est constituée par les extrémités non intersectées des éléments ST_LineString. La limite d'un objet ST_MultiLineString est NULL si toutes les extrémités de tous les éléments sont intersectées. En plus des propriétés héritées de la superclasse ST_Geometry, les objets ST_MultiLineString présentent une longueur. Les objets ST_MultiLineString permettent de définir des entités linéaires discontinues, telles que des cours d'eau ou des réseaux routiers.
Les fonctions qui construisent des objets multilinestring sont les suivantes :
- ST_MultiLineString
- ST_MLineFromText (Oracle et SQLite uniquement)
- ST_MLineFromWKB
- ST_MultiCurve (Oracle uniquement)
ST_Polygon
Un objet ST_Polygon est une 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. Les objets ST_Polygon sont toujours simples. Les objets ST_Polygon définissent des entités ayant une étendue spatiale, telle que les parcelles, les plans d'eau et les zones de compétence juridique.
Ce graphique présente des exemples d'objets ST_Polygon : (1) est un objet ST_Polygon dont la limite est définie par une boucle extérieure. (2) est un objet ST_Polygon dont la limite est définie par une boucle extérieure et deux boucles intérieures. La surface à l'intérieur des boucles intérieures fait partie de l'extérieur de l'objet ST_Polygon. (3) est un objet ST_Polygon autorisé, car les boucles s'intersectent en un seul point tangent.
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. En plus des autres propriétés héritées de la superclasse ST_Geometry, les objets ST_Polygon présentent une surface.
Les fonctions qui créent des objets polygon sont notamment les suivantes :
- ST_Polygon
- ST_PolyFromText (Oracle et SQLite uniquement)
- ST_PolyFromWKB
- ST_Surface (Oracle et SQLite uniquement)
ST_MultiPolygon
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. En plus des propriétés héritées de la superclasse ST_Geometry, les objets ST_MultiPolygon présentent une longueur. Les objets ST_MultiPolygon définissent des entités telles qu'une strate forestière ou une parcelle discontinue, par exemple une chaîne d'îlots du Pacifique.
L'illustration suivante montre des exemples d'objets ST_MultiPolygon : (1) est un objet ST_MultiPolygon avec deux éléments ST_Polygon. La limite est définie par les deux boucles extérieures et les trois boucles intérieures. (2) est un objet ST_MultiPolygon avec deux éléments ST_Polygon. Sa limite est définie par les deux boucles extérieures et les deux boucles intérieures. Les deux éléments ST_Polygon s'intersectent en un point tangent.
Les fonctions suivantes créent des objets multipolygon :
- ST_MultiPolygon
- ST_MPolyFromText (Oracle et SQLite uniquement)
- ST_MPolyFromWKB
- ST_MultiSurface (Oracle uniquement)