Freigeben über


GeometryCollection

A GeometryCollection ist eine Sammlung von Null oder mehr geometry oder geography Instanzen. A GeometryCollection kann leer sein.

GeometryCollection-Instanzen

Akzeptierte Instanzen

Damit eine GeometryCollection Instanz akzeptiert wird, muss sie entweder eine leere GeometryCollection Instanz sein, oder alle Instanzen, die die GeometryCollection Instanz umfassen, müssen akzeptiert werden. Das folgende Beispiel zeigt akzeptierte Instanzen.

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

Im folgenden Beispiel wird ein System.FormatException Fehler ausgelöst, da die LinesString Instanz in der GeometryCollection Instanz nicht akzeptiert wird.

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

Gültige Instanzen

Eine GeometryCollection Instanz ist gültig, wenn alle Instanzen, die die GeometryCollection Instanz umfassen, gültig sind. Im Folgenden sind drei gültige GeometryCollection Instanzen und eine ungültige Instanz aufgeführt.

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 ist ungültig, da die Polygon Instanz in der GeometryCollection Instanz ungültig ist.

Weitere Informationen zu akzeptierten und gültigen Instanzen finden Sie unter Point, MultiPoint, LineString, MultiLineString, Polygon und MultiPolygon.

Beispiele

Im folgenden Beispiel wird ein geometry``GeometryCollection mit Z-Werten in SRID 1 instanziiert, das eine Point Instanz und eine Polygon Instanz enthält.

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

Siehe auch

Räumliche Daten (SQL Server)