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