Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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);