MultiPolygon

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

다각형 인스턴스

아래 그림에서는 MultiPolygon 인스턴스의 예를 보여 줍니다.

Examples of geometry MultiPolygon instances

그림에 대한 설명:

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

  • 그림 2는 두 개의 다각형 요소가 있는 MultiPolygon 인스턴스입니다. 경계는 두 개의 외부 링과 세 개의 내부 링으로 정의됩니다. 두 다각형 요소는 탄젠트 지점에서 교차합니다.

허용되는 인스턴스

MultiPolygon 인스턴스는 다음 조건 중 하나가 충족됩니다.

  • MultiPolygon 인스턴스입니다.

  • MultiPolygon 인스턴스를 구성하는 모든 인스턴스는 허용되는 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)))';  

다음 예제에서는 을 throw할 MultiPolygon 인스턴스를 보여 줍니다 System.FormatException.

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

  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 는 두 다각형 인스턴스가 탄젠트 지점에서만 터치하기 때문에 유효합니다. @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(geometry 데이터 형식)
STCentroid(geometry 데이터 형식)
STPointOnSurface(geometry 데이터 형식)
공간 데이터(SQL Server)