다음을 통해 공유


GeometryCollection

적용 대상: Microsoft Fabric의 Microsoft Fabric SQL 데이터베이스에 있는 Microsoft Fabric Warehouse의 SQL Server Azure SQL Database Azure SQL Managed Instance SQL 분석 엔드포인트

GeometryCollection 은 1개 이상의 geometry 또는 geography 인스턴스 컬렉션입니다. GeometryCollection은 비어 있을 수 있습니다.

GeometryCollection 인스턴스

허용되는 인스턴스

GeometryCollection 인스턴스를 허용하려면 빈 GeometryCollection 인스턴스이거나 GeometryCollection 인스턴스를 구성하는 모든 인스턴스가 허용된 인스턴스여야 합니다. 다음은 허용되는 인스턴스의 예제입니다.

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

다음 예제에서는 GeometryCollection 인스턴스의 LinesString 인스턴스가 허용되지 않기 때문에 System.FormatException을(를) 발생시킵니다.

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

유효한 인스턴스

GeometryCollection 인스턴스는 GeometryCollection 인스턴스를 구성하는 모든 인스턴스가 유효한 경우 유효합니다. 다음 예제에서는 유효한 GeometryCollection 인스턴스 세 개와 유효하지 않은 인스턴스 하나를 보여 줍니다.

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

@g4GeometryCollection 인스턴스의 Polygon 인스턴스가 유효하지 않으므로 유효하지 않습니다.

허용되는 인스턴스와 유효한 인스턴스에 대한 자세한 내용은 Point, MultiPoint, LineString, MultiLineString, PolygonMultiPolygon을 참조하세요.

예시

다음 예제에서는 인스턴스와 Polygon 인스턴스를 geometry GeometryCollection 포함하는 Point SRID 1의 Z 값을 인스턴스화합니다.

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