다음을 통해 공유


LineString

LineString은 일련의 점과 이 점을 연결하는 선분으로 나타내는 1차원 개체입니다.

Linestring 인스턴스

다음 그림에서는 LineString 인스턴스의 예를 보여 줍니다.

geometry LineString 인스턴스의 예

그림에 대한 설명:

  • 그림 1은 단순하고 닫혀 있지 않은 LineString 인스턴스입니다.

  • 그림 2는 단순하지 않고 닫혀 있지 않은 LineString 인스턴스입니다.

  • 그림 3은 닫혀 있고 단순한 LineString 인스턴스이므로 링입니다.

  • 그림 4는 닫혀 있고 단순하지 않은 LineString 인스턴스이므로 링이 아닙니다.

허용되는 인스턴스

허용되는 LineString 인스턴스는 기하 도형 변수에 입력할 수는 있지만 유효한 LineString 인스턴스는 아닐 수 있습니다. LineString 인스턴스가 허용되려면 다음 조건을 만족해야 합니다. 인스턴스가 2개 이상의 점으로 구성되었거나 비어 있어야 합니다. 다음의 LineString 인스턴스는 허용됩니다.

DECLARE @g1 geometry = 'LINESTRING EMPTY';
DECLARE @g2 geometry = 'LINESTRING(1 1,2 3,4 8, -6 3)';
DECLARE @g3 geometry = 'LINESTRING(1 1, 1 1)';

@g3은 허용은 되지만 유효하지는 않은 LineString 인스턴스를 보여 줍니다.

다음의 LineString 인스턴스는 허용되지 않으며 System.FormatException이 발생합니다.

DECLARE @g geometry = 'LINESTRING(1 1)';

유효한 인스턴스

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

  1. LineString 인스턴스가 허용되어야 합니다.

  2. LineString 인스턴스가 비어 있지 않으면 고유한 점을 두 개 이상 포함해야 합니다.

  3. LineString 인스턴스 자체가 일정 간격으로 겹쳐서는 안 됩니다.

다음의 LineString 인스턴스는 유효합니다.

DECLARE @g1 geometry= 'LINESTRING EMPTY';
DECLARE @g2 geometry= 'LINESTRING(1 1, 3 3)';
DECLARE @g3 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0)';
DECLARE @g4 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();

다음의 LineString 인스턴스는 유효하지 않습니다.

DECLARE @g1 geometry = 'LINESTRING(1 4, 3 4, 2 4, 2 0)';
DECLARE @g2 geometry = 'LINESTRING(1 1, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid();
주의 사항주의

부동 소수점 계산을 기반으로 LineString의 겹침을 검색하는데, 이 계산은 정확하지 않습니다.

다음 예에서는 세 점이 있고 SRID가 0인 geometryLineString 인스턴스를 만드는 방법을 보여 줍니다.

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);

LineString 인스턴스의 각 점에는 Z(높이) 및 M(측정값) 값을 포함할 수 있습니다. 이 예에서는 위의 예에서 만들어진 LineString 인스턴스에 M 값을 추가합니다. M 및 Z는 Null 값이 될 수 있습니다.

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);