A MultiLineString 는 0개 이상의 geometrygeographyLineString 인스턴스 컬렉션입니다.
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 유효하려면 다음 조건을 충족해야 합니다.
인스턴스를 구성하는 모든 인스턴스는
MultiLineString유효한LineString인스턴스여야 합니다.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)