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);