다음을 통해 공유


STCurveToLine(geometry 데이터 형식)

원호 세그먼트가 포함된 geometry 인스턴스의 다각형 근사값을 반환합니다.

구문

.STCurveToLine ( )

반환 형식

SQL Server 반환 형식: geometry

CLR 반환 형식: SqlGeometry

주의

빈 geometry 인스턴스 변수에 대해 빈 GeometryCollection 인스턴스를 반환하고 초기화되지 않은 geometry 변수에 대해 NULL을 반환합니다.

메서드가 반환하는 다각형 근사값은 메서드 호출에 사용하는 geometry 인스턴스에 따라 다릅니다.

  • CircularString 또는 CompoundCurve 인스턴스에 대해 LineString 인스턴스를 반환합니다.

  • CurvePolygon 인스턴스에 대해 Polygon 인스턴스를 반환합니다.

  • 해당 인스턴스가 CircularString, CompoundCurve 또는 CurvePolygon 인스턴스가 아닐 경우 geometry 인스턴스 복사본을 반환합니다. 예를 들어 Point 인스턴스인 geometry 인스턴스에 대해서는 STCurveToLine 메서드가 Point 인스턴스를 반환합니다.

SQL/MM 사양과 달리 STCurveToLine 메서드는 다각형 근사값을 계산할 때 z-coordinate를 사용하지 않습니다. 메서드는 geometry 인스턴스를 호출할 때 제공되는 모든 z-coordinate 값을 무시합니다.

1.초기화되지 않은 Geometry 변수 및 빈 인스턴스 사용

다음 예에서 첫 번째 SELECT 문이 초기화되지 않은 geometry 인스턴스를 사용하여 STCurveToLine 메서드를 호출하고 두 번째 SELECT 문이 빈 geometry 인스턴스를 사용합니다. 따라서 메서드는 첫 번째 문에 NULL을 반환하고 두 번째 문에 GeometryCollection 컬렉션을 반환합니다.

DECLARE @g geometry;

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

SET @g = geometry::Parse('LINESTRING EMPTY');

SELECT @g.STGeometryType();

2.LineString 인스턴스 사용

다음 예의 SELECT 문은 LineString 인스턴스를 사용하여 STCurveToLine 메서드를 호출합니다. 따라서 메서드는 LineString 인스턴스를 반환합니다.

DECLARE @g geometry;

SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)');

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

3.CircularString 인스턴스 사용

다음 예의 첫 번째 SELECT 문은 CircularString 인스턴스를 사용하여 STCurveToLine 메서드를 호출합니다. 따라서 메서드는 LineString 인스턴스를 반환합니다. 또한 이 SELECT 문은 거의 같은 두 인스턴스의 길이를 비교합니다. 마지막으로 두 번째 SELECT 문이 각 인스턴스의 점 개수를 반환합니다. CircularString 인스턴스에 대해서는 점을 5개만 반환하지만 LineString 인스턴스에 대해서는 65개를 반환합니다.

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0)');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type], @g1.STLength() AS [G1 Perimeter], @g2.STLength() AS [G2 Perimeter], @g2.ToString() AS [G2 Def];

SELECT @g1.STNumPoints(), @g2.STNumPoints();

4.CurvePolygon 인스턴스 사용

다음 예의 SELECT 문은 CurvePolygon 인스턴스를 사용하여 STCurveToLine 메서드를 호출합니다. 따라서 메서드는 Polygon 인스턴스를 반환합니다.

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0))');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type];

참고 항목

참조

STLength(geometry 데이터 형식)

STNumPoints(geometry 데이터 형식)

STGeometryType(geometry 데이터 형식)

개념

공간 데이터 형식 개요