STCurveN(geometry 데이터 형식)
LineString, CircularString, CompoundCurve 또는 MultiLineString인 geometry 인스턴스에서 지정한 곡선을 반환합니다.
구문
.STCurveN ( curve_index )
인수
- curve_index
1과 geometry 인스턴스에 있는 곡선 개수 사이의 int 식입니다.
반환 형식
SQL Server 반환 형식: geometry
CLR 반환 형식: SqlGeometry
예외
curve_index < 1일 경우 ArgumentOutOfRangeException이 발생합니다.
주의
다음 상황에서는 NULL이 반환됩니다.
geometry 인스턴스가 선언되지만 인스턴스화되지 않는 경우
geometry 인스턴스가 비어 있는 경우
curve_index가 geometry 인스턴스의 곡선 개수를 초과하는 경우
geometry 인스턴스가 Point, MultiPoint, Polygon, CurvePolygon 또는 MultiPolygon인 경우
예
1.CircularString 인스턴스에 STCurveN() 사용
다음 예에서는 CircularString 인스턴스에 두 번째 곡선을 반환합니다.
DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';
SELECT @g.STCurveN(2).ToString();
이 항목의 이전 예에서는 다음을 반환합니다.
CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)
2.CircularString 인스턴스 하나와 함께 CompoundCurve 인스턴스에 STCurveN() 사용
다음 예에서는 CompoundCurve 인스턴스에 두 번째 곡선을 반환합니다.
DECLARE @g geometry = 'COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0))';
SELECT @g.STCurveN(2).ToString();
이 항목의 이전 예에서는 다음을 반환합니다.
CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)
3.CircularString 인스턴스 세 개와 함께 CompoundCurve 인스턴스에 STCurveN() 사용
다음 예에서는 별도의 CircularString 인스턴스 세 개를 이전 예와 동일한 곡선 시퀀스에 조합하는 CompoundCurve 인스턴스를 사용합니다.
DECLARE @g geometry = 'COMPOUNDCURVE (CIRCULARSTRING (0 0, 1 2.1082, 3 6.3246), CIRCULARSTRING(3 6.3246, 0 7, -3 6.3246), CIRCULARSTRING(-3 6.3246, -1 2.1082, 0 0))';
SELECT @g.STCurveN(2).ToString();
이 항목의 이전 예에서는 다음을 반환합니다.
CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)
이전의 세 가지 예와 결과가 동일합니다. 같은 곡선 시퀀스를 입력하기 위해 어떤 WKT(Well-known Text) 형식을 사용하건 간에 CompoundCurve 인스턴스가 사용될 때 STCurveN()에서 반환하는 결과는 같습니다.
4.STCurveN() 호출 전 매개 변수 유효성 검사
다음 예에서는 STCurveN()메서드를 호출하기 전에 @n이 올바른지 확인하는 방법을 보여 줍니다.
DECLARE @g geometry;
DECLARE @n int;
SET @n = 3;
SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');
IF @n >= 1 AND @n <= @g.STNumCurves()
BEGIN
SELECT @g.STCurveN(@n).ToString();
END