GeometryCollectionGeometryCollection

GeometryCollection è una raccolta di zero o più istanze di tipo geometry o geography .A GeometryCollection is a collection of zero or more geometry or geography instances. GeometryCollection può essere vuoto.A GeometryCollection can be empty.

Istanze GeometryCollectionGeometryCollection Instances

Istanze accettateAccepted Instances

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.For a GeometryCollection instance to be accepted, it must either be an empty GeometryCollection instance or all the instances comprising the GeometryCollection instance must be accepted instances. Nell'esempio seguente vengono illustrate le istanze accettate.The following example shows accepted instances.

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.The following example throws a System.FormatException because the LinesString instance in the GeometryCollection instance is not accepted.

DECLARE @g geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1), POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';  

Istanze valideValid Instances

Un'istanza GeometryCollection è valida se tutte le istanze che comprendono l'istanza GeometryCollection sono valide.A GeometryCollection instance is valid when all instances that comprise the GeometryCollection instance are valid. Nell'esempio seguente vengono indicate tre istanze GeometryCollection valide e un'istanza non valida.The following shows three valid GeometryCollection instances and one instance that is not valid.

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.@g4 is not valid because the Polygon instance in the GeometryCollection instance is not valid.

Per altre informazioni sulle istanze accettate e valide, vedere Point, MultiPoint, LineString, MultiLineString, Polygone MultiPolygon.For more information on accepted and valid instances, see Point, MultiPoint, LineString, MultiLineString, Polygon, and MultiPolygon.

EsempiExamples

Nell'esempio seguente viene creata un'istanza di un geometry``GeometryCollection con i valori Z in SRID 1 in cui sono incluse le istanze Point e Polygon .The following example instantiates a geometry``GeometryCollection with Z values in SRID 1 containing a Point instance and a 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);  

Vedere ancheSee Also

Dati spaziali (SQL Server)Spatial Data (SQL Server)