Delen via


GeometryCollection

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Een GeometryCollection is een verzameling van nul of meer geometrie - of geografieexemplaren . Een GeometryCollection kan leeg zijn.

GeometryCollection-exemplaren

Geaccepteerde gevallen

Een GeometryCollection-exemplaar moet een leeg GeometryCollection-exemplaar zijn of alle exemplaren van het GeometryCollection-exemplaar moeten worden geaccepteerd. In het volgende voorbeeld ziet u geaccepteerde instanties.

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

Het volgende voorbeeld genereert een System.FormatException omdat het LinesString-exemplaar in het GeometryCollection-exemplaar niet wordt geaccepteerd.

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

Geldige exemplaren

Een GeometryCollection-exemplaar is geldig wanneer alle exemplaren die deel uitmaken van het GeometryCollection-exemplaar geldig zijn. Hieronder ziet u drie geldige GeometryCollection-exemplaren en één exemplaar dat niet geldig is.

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 is ongeldig omdat de Polygon-instantie in de GeometryCollection-instantie niet geldig is.

Zie Punt, MultiPoint, LineString, MultiLineString, Polygon en MultiPolygon voor meer informatie over geaccepteerde en geldige exemplaren.

Example

In het volgende voorbeeld wordt een geometryGeometryCollection instantie geïnstitueerd met Z-waarden in SRID 1 die een Point exemplaar en een Polygon exemplaar bevatten.

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