다음을 통해 공유


GeometryCollection

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 의 SQL 분석 엔드포인트Microsoft Fabric의 웨어하우스Microsoft Fabric의 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)))';  

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

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을 참조하세요.

Example

다음 예제에서는 인스턴스와 geometry 인스턴스를 GeometryCollectionPoint 포함하는 Polygon 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);