BufferWithCurves(geography 데이터 형식)

호출하는 geography 인스턴스와의 거리가 distance 매개 변수보다 작거나 같은 모든 점의 집합을 나타내는 geography 인스턴스를 반환합니다.

구문

.BufferWithCurves ( distance )

인수

  • distance
    버퍼를 구성하는 점과 geography 인스턴스 사이에 허용되는 최대 거리를 나타내는 float입니다.

반환 형식

SQL Server 반환 형식: geography

CLR 반환 형식: SqlGeography

예외

다음 조건에서 ArgumentException이 발생합니다.

  • 메서드에 매개 변수가 전달되지 않는 경우(예: @g.BufferWithCurves())

  • 숫자가 아닌 매개 변수가 메서드에 전달되는 경우(예: @g.BufferWithCurves('a'))

  • NULL 메서드에 전달되는 경우(예: @g.BufferWithCurves(NULL)

주의

다음 표에서는 여러 거리 값에 대해 반환되는 결과를 보여 줍니다.

거리 값

유형 차원

반환되는 공간 유형

거리 < 0

0 또는 1

빈 GeometryCollection 인스턴스

거리 < 0

2 이상

음수 버퍼가 있는 CurvePolygon 또는 GeometryCollection 인스턴스

[!참고]

버퍼가 음수이면 빈 GeometryCollection이 만들어질 수도 있습니다.

거리 = 0

모든 차원

호출 geography 인스턴스의 복사본

거리 > 0

모든 차원

CurvePolygon 또는 GeometryCollection 인스턴스

[!참고]

distance가 float이므로 매우 작은 값은 0으로 계산될 수 있습니다. 이 경우 호출 geography 인스턴스의 복사본이 반환됩니다.

string 매개 변수가 메서드에 전달되면 float로 변환되거나 ArgumentException이 발생합니다.

1.1차원 geography 인스턴스에서 매개 변수 값 < 0인 BufferWithCurves() 호출

다음 예에서는 빈 GeometryCollection 인스턴스를 반환합니다.

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';

SELECT @g.BufferWithCurves(-1).ToString();

2.2차원 geography 인스턴스에서 매개 변수 값 < 0인 BufferWithCurves() 호출

다음 예에서는 버퍼가 음수인 CurvePolygon 인스턴스를 반환합니다.

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';

SELECT @g.BufferWithCurves(-1).ToString()

3.빈 GeometryCollection을 반환하고 매개 변수 값 < 0인 BufferWithCurves() 호출

다음 예에서는 distance 매개 변수가 -2와 같을 때 생기는 결과를 보여 줍니다.

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';

SELECT @g.BufferWithCurves(-2).ToString();

이 SELECT 문은 GEOMETRYCOLLECTION EMPTY를 반환합니다.

4.매개 변수 값 = 0인 BufferWithCurves() 호출

다음 예에서는 호출 geography 인스턴스의 복사본을 반환합니다.

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';

SELECT @g.BufferWithCurves(0).ToString();

5.매우 작고 0이 아닌 매개 변수 값으로 BufferWithCurves() 호출

다음 예에서도 호출 geography 인스턴스의 복사본을 반환합니다.

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';

DECLARE @distance float = 1e-20;

SELECT @g.BufferWithCurves(@distance).ToString();

6.매개 변수 값 > 0인 BufferWithCurves() 호출

다음 예에서는 CurvePolygon 인스턴스를 반환합니다.

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';

SELECT @g.BufferWithCurves(2).ToString();

7.올바른 문자열 매개 변수 전달

다음 예에서는 앞에서 설명한 것과 동일하지만 문자열 매개 변수가 메서드에 전달되는 CurvePolygon 인스턴스를 반환합니다.

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';

SELECT @g.BufferWithCurves('2').ToString();

8.잘못된 문자열 매개 변수 전달

다음 예에서는 오류가 발생합니다.

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)'

SELECT @g.BufferWithCurves('a').ToString();

위의 두 예에서는 문자열 리터럴이 BufferWithCurves() 메서드에 전달됩니다. 첫 번째 예는 문자열 리터럴을 숫자 값으로 변환할 수 있으므로 정상적으로 작동하지만, 두 번째 예에서는 ArgumentException이 발생합니다.

참고 항목

참조

BufferWithCurves(geometry 데이터 형식)

관련 자료

geography 인스턴스의 확장 메서드