Compartir vía


GeometryCollection

Se aplica a: Sql Server Azure SQL Database Azure SQL Instancia administrada punto de conexión de SQL Analytics en Microsoft Fabric Warehouse en la base de datos SQL de Microsoft Fabric en Microsoft Fabric

Un GeometryCollection es una colección de cero o más geometry o geography instancias. Un GeometryCollection puede estar vacío.

Instancias de GeometryCollection

Instancias aceptadas

Para que se acepte una instancia de GeometryCollection , debe ser una instancia de GeometryCollection vacía o todas las instancias que comprenden la instancia de GeometryCollection deben ser instancias aceptadas. El siguiente ejemplo muestra instancias aceptadas de .

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

El siguiente ejemplo inicia una System.FormatException porque la instancia LinesString de la instancia GeometryCollection no se acepta.

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

Instancias válidas

Una instancia de GeometryCollection es válida cuando todas las instancias que comprenden la instancia de GeometryCollection son válidas. A continuación se muestran tres instancias de GeometryCollection válidas y una instancia que no es válida.

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 no es válida porque la instancia Polygon de la instancia GeometryCollection no es válida.

Para obtener más información de las instancias aceptadas y las instancias válidas, vea Point, MultiPoint, LineString, MultiLineString, Polygony MultiPolygon.

Ejemplo

En el ejemplo siguiente se crea una geometry GeometryCollection instancia de con valores Z en SRID 1 que contiene una Point instancia y una Polygon instancia.

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