다음을 통해 공유


MultiPolygon

적용 대상: SQL Server Azure SQL 데이터베이스 SQL Managed Instance

MultiPolygon 인스턴스는 0개 이상의 Polygon 인스턴스 컬렉션입니다.

Polygon 인스턴스

아래 일러스트에이션에서는 MultiPolygon 인스턴스의 예제를 보여 줍니다.

기하학 MultiPolygon 인스턴스의 예

그림에 대한 설명:

  • 그래픽 블록 1은 두 개의 Polygon 요소가 있는 MultiPolygon 인스턴스입니다. 인스턴스의 경계는 두 개의 외부 링과 세 개의 내부 링으로 정의됩니다.

  • 그래픽 블록 2는 두 개의 Polygon 요소가 있는 MultiPolygon 인스턴스입니다. 인스턴스의 경계는 두 개의 외부 링과 세 개의 내부 링으로 정의됩니다. 두 개의 Polygon 요소는 접선 포인트에서 교차합니다.

허용되는 인스턴스

MultiPolygon 인스턴스는 다음 조건 중 하나가 충족되는 경우 허용됩니다.

  • MultiPolygon 인스턴스입니다.

  • MultiPolygon 인스턴스를 구성하는 모든 인스턴스는 허용되는 Polygon 인스턴스입니다. 허용되는 Polygon 인스턴스에 대한 자세한 내용은 Polygon을 참조하세요.

다음은 허용되는 MultiPolygon 인스턴스의 예제입니다.

DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';  
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';  
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';  

다음 예제에서는 System.FormatException을(를) 발생시킬 MultiPolygon 인스턴스를 보여 줍니다.

DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';  

MultiPolygon의 두 번째 인스턴스는 허용되는 Polygon 인스턴스가 아닌 LineString 인스턴스입니다.

유효한 인스턴스

MultiPolygon 인스턴스는 빈 MultiPolygon 인스턴스이거나 다음 조건을 충족하는 경우 유효합니다.

  1. MultiPolygon 인스턴스를 구성하는 모든 인스턴스가 유효한 Polygon 인스턴스인 경우. 유효한 Polygon 인스턴스는 Polygon을 참조하세요.

  2. Polygon 인스턴스를 구성하는 어떤 MultiPolygon 인스턴스도 겹치지 않는 경우

다음 예제에서는 유효한 MultiPolygon 인스턴스 2개와 무효한 MultiPolygon 인스턴스 1개를 보여 줍니다.

DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';  
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';  
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';  
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid();  

@g2은(는) 두 Polygon 인스턴스의 접선 포인트에서만 닿기 때문에 유효합니다. @g3 은 두 Polygon 인스턴스의 내부가 서로 겹치므로 유효하지 않습니다.

예제

예 A.

다음 예제에서는 geometry``MultiPolygon 인스턴스를 만들고 두 번째 구성 요소의 WKT(잘 알려진 텍스트)를 반환하는 것을 보여 줍니다.

DECLARE @g geometry;  
SET @g = geometry::Parse('MULTIPOLYGON(((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 1, 1 1)), ((9 9, 9 10, 10 9, 9 9)))');  
SELECT @g.STGeometryN(2).STAsText();  

예 2.

다음은 빈 MultiPolygon 인스턴스를 인스턴스화하는 예제입니다.

DECLARE @g geometry;  
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');  

참고 항목

Polygon
STArea(기하학 데이터 형식)
STCentroid(기하학 데이터 형식)
STPointOnSurface(geometry 데이터 형식)
공간 데이터(SQL Server)