다음을 통해 공유


멀티라인 문자열

A MultiLineString 는 0개 이상의 geometrygeographyLineString 인스턴스 컬렉션입니다.

MultiLineString 인스턴스

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

기하학 MultiLineString 인스턴스의 예시

그림과 같이 다음을 수행합니다.

  • 그림 1은 경계가 두 LineString 요소의 4개 엔드포인트인 간단한 MultiLineString 인스턴스입니다.

  • 그림 2는 요소의 LineString 엔드포인트만 교차하므로 간단한 MultiLineString 인스턴스입니다. 경계는 겹치지 않는 두 개의 엔드포인트입니다.

  • 그림 3은 요소 중 LineString 하나의 내부가 교차하므로 비임플 MultiLineString 인스턴스입니다. 이 MultiLineString 인스턴스의 경계는 네 개의 엔드포인트입니다.

  • 그림 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 인스턴스가 잘못되었기 때문에 a System.FormatException 를 throw합니다.

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

유효한 인스턴스

인스턴스가 MultiLineString 유효하려면 다음 조건을 충족해야 합니다.

  1. 인스턴스를 구성하는 모든 인스턴스는 MultiLineString 유효한 LineString 인스턴스여야 합니다.

  2. MultiLineString 인스턴스를 구성하는 두 LineString 인스턴스는 어떤 간격에서도 서로 겹칠 수 없습니다. 인스턴스는 LineString 한정된 수의 지점에서만 자체 또는 다른 LineString 인스턴스를 교차하거나 터치할 수 있습니다.

다음 예제에서는 유효한 MultiLineString 인스턴스 3개와 유효하지 않은 인스턴스 1개를 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 는 두 번째 인스턴스가 간격으로 첫 번째 LineStringLineString 인스턴스와 겹치므로 유효하지 않습니다. 그들은 무한한 수의 접점에 접촉합니다.

예시

다음 예제에서는 SRID 0을 사용하여 두 LineString 요소를 포함하는 간단한 geometry``MultiLineString 인스턴스를 만듭니다.

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)