Sdílet prostřednictvím


GeometryCollection

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLKoncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

GeometryCollection je kolekce nula nebo více geometrických nebo zeměpisných instancí. GeometryCollection může být prázdný.

instance GeometryCollection

Akceptované instance

Aby byla instance GeometryCollection akceptována, musí být buď prázdná instance GeometryCollection, nebo všechny instance tvořící instanci GeometryCollection musí být akceptované instance. Následující příklad ukazuje přijaté instance.

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

Následující příklad vyvolá výjimku System.FormatException, protože instance LineString v instanci GeometryCollection není přijata.

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

Platné instance

A GeometryCollection instance je platná, pokud jsou všechny instance, které tvoří GeometryCollection instance jsou platné. Následující příklad ukazuje tři platné instance GeometryCollection a jednu instanci, která není platná.

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 není platný, protože polygon instance v instanci GeometryCollection není platný.

Další informace o akceptovaných a platných instancích naleznete v tématu Point, MultiPoint, LineString, MultiLineString, Polygon a MultiPolygon.

Example

Následující příklad vytvoří geometryGeometryCollection instanci s hodnotami Z v SRID 1 obsahující Point instanci a Polygon instanci.

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