Partager via


GeometryCollection

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

Instances de GeometryCollection

Instances acceptées

Pour qu’une GeometryCollection instance soit acceptée, il doit s’agir d’une instance vide GeometryCollection ou de toutes les instances qui composent l’instance GeometryCollection doivent être des instances acceptées. L’exemple suivant montre les 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 un System.FormatException car l’instance LinesString de 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 GeometryCollection instance est valide lorsque toutes les instances qui composent l’instance GeometryCollection sont valides. L’exemple suivant montre trois instances valides et une instance qui n’est pas valide GeometryCollection .

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 de l’instance GeometryCollection n’est pas valide.

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

Exemples

L'exemple suivant instancie un geometry``GeometryCollection avec des valeurs 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);  

Voir aussi

données spatiales (SQL Server)