MultiPolygon
MultiPolygon 인스턴스는 0개 이상의 Polygon 인스턴스 컬렉션입니다.
MultiPolygon 인스턴스
다음 그림에서는 MultiPolygon 인스턴스의 예를 보여 줍니다.
그림에 대한 설명:
그림 1은 두 개의 Polygon 요소가 있는 MultiPolygon 인스턴스입니다. 경계는 두 개의 외부 링과 세 개의 내부 링으로 정의됩니다.
그림 2는 두 개의 Polygon 요소가 있는 MultiPolygon 인스턴스입니다. 경계는 두 개의 외부 링과 세 개의 내부 링으로 정의됩니다. 두 개의 Polygon 요소는 탄젠트 점에서 교차합니다.
수락된 인스턴스
다음 조건 중 하나가 만족되면 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)))';
다음 예에서는 System.FormatException이 발생하는 MultiPolygon 인스턴스를 보여 줍니다.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
MultiPolygon에 있는 두 번째 인스턴스는 LineString 인스턴스이며 수락된 Polygon 인스턴스가 아닙니다.
유효한 인스턴스
MultiPolygon 인스턴스가 빈 MultiPolygon 인스턴스이거나 다음 조건을 만족하면 유효합니다.
MultiPolygon 인스턴스를 구성하는 모든 인스턴스는 유효한 Polygon 인스턴스입니다. 유효한 Polygon 인스턴스에 대해서는 다각형을 참조하십시오.
MultiPolygon 인스턴스를 구성하는 Polygon 인스턴스가 하나도 겹치지 않습니다.
다음 예에서는 두 개의 유효한 MultiPolygon 인스턴스와 하나의 유효하지 않은 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)))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid();
두 개의 Polygon 인스턴스가 탄젠트 점에서만 만나므로 @g2는 유효합니다. @g3는 두 Polygon 인스턴스의 내부가 서로 겹치므로 유효하지 않습니다.
예
다음 예에서는 geometryMultiPolygon 인스턴스를 만드는 방법을 보여 주고 두 번째 구성 요소의 WKT(Well-Known Text)를 반환합니다.
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();
이 예에서는 빈 MultiPolygon 인스턴스를 인스턴스화합니다.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');