GeometryCollection
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL in Microsoft Fabric Warehouse nel database SQL di Microsoft Fabric in Microsoft Fabric
GeometryCollection è una raccolta di zero o più istanze di tipo geometry o geography . GeometryCollection può essere vuoto.
Istanze GeometryCollection
Istanze accettate
Per poter essere accettata, un'istanza GeometryCollection deve essere un'istanza GeometryCollection vuota oppure tutte le istanze che comprendono l'istanza GeometryCollection devono essere istanze accettate. Nell'esempio seguente vengono illustrate le istanze accettate.
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)))';
Nell'esempio seguente viene generata un'eccezione System.FormatException
, poiché l'istanza LinesString nell'istanza GeometryCollection non è accettata.
DECLARE @g geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1), POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
Istanze valide
Un'istanza GeometryCollection è valida se tutte le istanze che comprendono l'istanza GeometryCollection sono valide. Nell'esempio seguente vengono indicate tre istanze GeometryCollection valide e un'istanza non valida.
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
non è valida, poiché l'istanza Polygon nell'istanza GeometryCollection non è valida.
Per altre informazioni sulle istanze accettate e valide, vedere Point, MultiPoint, LineString, MultiLineString, Polygone MultiPolygon.
Esempio
Nell'esempio seguente viene creata un'istanza di con geometry
GeometryCollection
valori Z in SRID 1 contenente un'istanza Point
e un'istanza Polygon
di .
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);