다음을 통해 공유


CurveToLineWithTolerance(geometry 데이터 형식)

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

구문

.CurveToLineWithTolerance ( tolerance, relative )

인수

  • tolerance
    원래의 원호 세그먼트와 선형 근사값 사이의 최대 오차를 정의하는 double 식입니다.

  • relative
    편차에 대해 극대값을 사용할지 여부를 나타내는 bool 식입니다. 극대값이 false(0)로 설정되면 선형 근사값이 가질 수 있는 편차에 대해 최대값이 설정됩니다. 극대값이 true(1)로 설정되면 허용 오차는 허용 오차 매개 변수와 공간 개체의 경계 상자 지름의 곱으로 계산됩니다.

반환 형식

SQL Server 반환 형식: geometry

CLR 반환 형식: SqlGeometry

예외

허용 오차를 <= 0으로 설정하면 ArgumentOutOfRange 예외가 발생합니다.

주의

이 메서드는 결과 LineString의 허용 오차 크기를 지정할 수 있습니다.

다음 표에서는 여러 유형에 대해 CurveToLineWithTolerance()에서 반환하는 인스턴스 유형을 보여 줍니다.

호출 인스턴스 유형

반환되는 공간 유형

빈 geometry 인스턴스

빈 GeometryCollection 인스턴스

Point 및 MultiPoint

Point 인스턴스

MultiPoint

Point 또는 MultiPoint 인스턴스

CircularString, CompoundCurve 또는 LineString

LineString 인스턴스

MultiLineString

LineString 또는 MultiLineString 인스턴스

CurvePolygon 및 Polygon

Polygon 인스턴스

MultiPolygon

Polygon 또는 MultiPolygon 인스턴스

원호 세그먼트가 포함되지 않은 단일 인스턴스가 있는 GeometryCollection

GeometryCollection에 포함된 인스턴스가 반환된 인스턴스의 유형을 결정합니다.

단일 1차원 원호 세그먼트 인스턴스(CircularString, CompoundCurve)가 있는 GeometryCollection

LineString 인스턴스

단일 2차원 원호 세그먼트 인스턴스(CurvePolygon)가 있는 GeometryCollection

Polygon 인스턴스

여러 1차원 인스턴스가 있는 GeometryCollection

MultiLineString 인스턴스

여러 2차원 인스턴스가 있는 GeometryCollection

MultiPolygon 인스턴스

다른 차원의 여러 인스턴스가 있는 GeometryCollection

GeometryCollection 인스턴스

1.CircularString 인스턴스에 여러 허용 오차 값 사용

다음 예에서는 허용 오차를 설정하면 CircularString 인스턴스에서 반환된 LineString 인스턴스가 어떤 영향을 받는지 보여 줍니다.

DECLARE @g geometry;

SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');

SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.01, 0).STNumPoints();

2.LineString 하나를 포함하는 MultiLineString 인스턴스에 메서드 사용

다음 예에서는 LineString 인스턴스 하나만 포함하는 MultiLineString 인스턴스에서 반환되는 결과를 보여 줍니다.

DECLARE @g geometry;

SET @g = geometry::Parse('MULTILINESTRING((1 3, 4 8, 6 9))');

SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

3.여러 LineString을 포함하는 MultiLineString 인스턴스에 메서드 사용

다음 예에서는 LineString 인스턴스를 둘 이상 포함하는 MultiLineString 인스턴스에서 반환되는 결과를 보여 줍니다.

DECLARE @g geometry;

SET @g = geometry::Parse('MULTILINESTRING((1 3, 4 8, 6 9),(4 4, 9 18))');

SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

4.호출하는 CurvePolygon 인스턴스에 대해 극대값을 true로 설정

다음 예에서는 relative를 true로 설정하여 CurvePolygon 인스턴스를 사용해 CurveToLineWithTolerance()를 호출합니다.

DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';

SELECT @g.CurveToLineWithTolerance(.5,1).ToString();

5.GeometryCollection 인스턴스에 메서드 사용

다음 예에서는 2차원 CurvePolygon 인스턴스와 1차원 CircularString 인스턴스가 포함된 GeometryCollection에서 CurveToLineWithTolerance()를 호출합니다. CurveToLineWithTolerance()는 원호 세그먼트 유형을 둘 다 선분 유형으로 변환하여 GeometryCollection 유형으로 반환합니다.

DECLARE @g geometry;

SET @g = geometry::Parse('GEOMETRYCOLLECTION(CURVEPOLYGON( COMPOUNDCURVE(CIRCULARSTRING(0 2, 2 0, 4 2), (4 2, 0 2))), CIRCULARSTRING(4 4, 8 6, 9 5))');

SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.1, 0).ToString();

참고 항목

참조

CurveToLineWithTolerance(geography 데이터 형식)

STCurveToLine(geometry 데이터 형식)