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 Preview

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

GeometryCollection instances

Accepted instances

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 exemplaren.

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

Valid instances

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 het polygoonexemplaren in het geometryCollection-exemplaar 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);