Condividi tramite


GeometryCollection

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureEndpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft FabricDatabase SQL 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.

Example

Nell'esempio seguente viene creata un'istanza di con geometryGeometryCollection 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);