MultiLineString
적용 대상: SQL Server Azure SQL 데이터베이스 SQL Managed Instance
MultiLineString은 0개 이상의 geometry 또는 geography 인스턴스 컬렉션입니다.
MultiLineString 인스턴스
아래 일러스트레이션에서는 MultiLineString 인스턴스의 예제를 보여 줍니다.
그림에 대한 설명:
그래픽 블록 1은 두 LineString 요소의 끝점 네 개가 경계인 단순한 MultiLineString 인스턴스입니다.
그래픽 블록 2는 LineString 요소의 끝점만 교차하므로 간단한 MultiLineString 인스턴스입니다. 경계는 두 개의 겹치지 않는 엔드포인트입니다.
그래픽 블록 3은 해당 LineString 요소 중 하나의 내부가 교차하므로 단순하지 않은 MultiLineString 인스턴스입니다. 이 MultiLineString 인스턴스의 경계는 4개의 엔드포인트입니다.
그림 4는 단순하지 않고 닫혀 있지 않은 MultiLineString 인스턴스입니다.
그림 5는 단순하고 닫혀 있지 않은 MultiLineString인스턴스입니다. LineStrings 요소가 닫혀 있지 않으므로 닫혀 있지 않습니다. LineStrings 인스턴스의 내부에 교차하는 것이 없으므로 단순합니다.
그래픽 블록 6는 단순하고 닫혀 있는 MultiLineString 인스턴스입니다. 모든 요소가 닫혀 있기 때문에 닫혀 있습니다. 해당 요소 중 어느 것도 내부에서 교차하지 않으므로 간단합니다.
허용되는 인스턴스
MultiLineString 인스턴스는 비어 있거나 허용되는 LineString 인스턴스로만 구성되어 있어야 허용됩니다. 허용되는 LineString 인스턴스에 대한 자세한 내용은 LineString을 참조하십시오. 다음은 허용되는 MultiLineString 인스턴스의 예입니다.
DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';
다음 예제에서는 두 번째 LineString 인스턴스가 유효하지 않으므로 System.FormatException
이(가) 발생합니다.
DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';
유효한 인스턴스
MultiLineString 인스턴스는 다음 조건을 충족해야 유효합니다.
MultiLineString 인스턴스를 구성하는 모든 인스턴스가 유효한 LineString 인스턴스여야 합니다.
MultiLineString 인스턴스를 구성하는 두 LineString 인스턴스가 간격을 두고 겹치면 안 됩니다. LineString 인스턴스는 제한된 수의 포인트에서만 자체적으로 또는 다른 LineString 인스턴스와 교차하거나 닿는 것만 가능합니다.
다음 예제에서는 유효한 MultiLineString 인스턴스 세 개와 유효하지 않은 MultiLineString 인스턴스 하나를 보여 줍니다.
DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();
@g4
는 두 번째 LineString 인스턴스가 일정 간격으로 첫 번째 LineString 인스턴스와 겹치므로 유효하지 않습니다. 무한한 수의 포인트에서 닿습니다.
예제
다음 예제에서는 단순한 geometry``MultiLineString
인스턴스를 만듭니다(두 LineString
요소와 SRID 0 포함).
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
다른 SRID로 이 인스턴스를 인스턴스화하려면 STGeomFromText()
또는 STMLineStringFromText()
를 사용합니다. 다음 예제와 같이 Parse()
을(를) 사용한 다음 SRID를 수정할 수도 있습니다.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
SET @g.STSrid = 13;
참고 항목
STLength(기하학 데이터 형식)
STIsClosed(geometry 데이터 형식)
LineString
공간 데이터(SQL Server)