Udostępnij za pomocą


GeometryCollection

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstancePunkt końcowy analizy SQL w usłudze Microsoft FabricMagazyn w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

GeometryCollection to kolekcja zera lub większej liczby wystąpień geometrii lub geografii. GeometryCollection może być pusta.

Wystąpienia GeometryCollection

Zaakceptowane wystąpienia

Aby wystąpienie GeometryCollection było akceptowane, musi być pustym wystąpieniem GeometryCollection lub wszystkie wystąpienia składające się z wystąpienia GeometryCollection muszą zostać zaakceptowane. Poniższe przykłady przedstawiają zaakceptowane wystąpienia.

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

Poniższy przykład zgłasza wyjątek System.FormatException , ponieważ wystąpienie LinesString w wystąpieniu GeometryCollection nie jest akceptowane.

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

Prawidłowe wystąpienia

Wystąpienie GeometryCollection jest prawidłowe, gdy wszystkie wystąpienia składające się na wystąpienie GeometryCollection są prawidłowe. Poniżej przedstawiono trzy prawidłowe wystąpienia GeometryCollection i jedno wystąpienie, które nie jest prawidłowe.

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 jest nieprawidłowy, ponieważ wystąpienie wielokąta w wystąpieniu GeometryCollection jest nieprawidłowe.

Aby uzyskać więcej informacji na temat akceptowanych i prawidłowych wystąpień, zobacz Punkt, MultiPoint, LineString, MultiLineString, Polygon i MultiPolygon.

Example

Poniższy przykład tworzy wystąpienie elementu geometryGeometryCollection z wartościami Z w identyfikatorze SRID 1 zawierające wystąpienia Point i Polygon.

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