Partager via


GeometryCollection

S’applique à : point de terminaison d’analytique SQL Azure SQL Database Azure SQL Database Azure SQL Dans Microsoft Fabric Warehouse dans Microsoft Fabric SQL Database dans Microsoft Fabric SQL Database

Un objet GeometryCollection est une collection de zéro ou plusieurs instances de geometry ou geography . Un objet GeometryCollection peut être vide.

Instances GeometryCollection

Instances acceptées

Pour qu’une instance GeometryCollection soit acceptée, il faut qu’il s’agisse d’une instance GeometryCollection vide ou que toutes les instances composant l’instance GeometryCollection soient des instances acceptées. L'exemple suivant illustre des instances acceptées.

DECLARE @g1 geometry = 'GEOMETRYCOLLECTION EMPTY';  
DECLARE @g2 geometry = 'GEOMETRYCOLLECTION(LINESTRING EMPTY,POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';  
DECLARE @g3 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';  

L’exemple suivant lève une exception System.FormatException , car l’instance LinesString dans l’instance GeometryCollection n’est pas acceptée.

DECLARE @g geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1), POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';  

Instances valides

Une instance GeometryCollection est valide quand toutes les instances qui composent l’instance GeometryCollection sont valides. L’exemple suivant illustre trois instances GeometryCollection valides et une instance non valide.

DECLARE @g1 geometry = 'GEOMETRYCOLLECTION EMPTY';  
DECLARE @g2 geometry = 'GEOMETRYCOLLECTION(LINESTRING EMPTY,POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';  
DECLARE @g3 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';  
DECLARE @g4 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, 1 -5, -5 5, -5 -1, -1 -1)))';  
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();  

@g4 n’est pas valide car l’instance Polygon dans l’instance GeometryCollection n’est pas valide.

Pour plus d’informations sur les instances acceptées et valides, consultez Point, MultiPoint, LineString, MultiLineString, polygoneet MultiPolygon.

Exemple

L’exemple suivant instancie une geometry GeometryCollection valeur Z dans SRID 1 contenant une Point instance et une Polygon instance.

DECLARE @g geometry;  
SET @g = geometry::STGeomCollFromText('GEOMETRYCOLLECTION(POINT(3 3 1), POLYGON((0 0 2, 1 10 3, 1 0 4, 0 0 2)))', 1);