Partager via


GeometryCollection

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceEndpoint SQL analytics dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

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

Instances de 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.

Example

L’exemple suivant instancie une geometryGeometryCollection 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);