BufferWithCurves(geography 데이터 형식)

적용 대상: 예SQL Server(지원되는 모든 버전) 예Azure SQL Database

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

구문

  
.BufferWithCurves ( distance )  

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

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 인스턴스의 복사본
distance > 0 모든 차원 CurvePolygon 또는 GeometryCollection 인스턴스

참고

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

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

예제

A. 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();

B. 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()

C. 빈 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를 반환합니다.

D. 매개 변수 값 = 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();

E. 매우 작고 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();

F. 매개 변수 값 > 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();

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

다음 예에서는 앞에서 설명한 것과 동일하지만 문자열 매개 변수가 메서드에 전달되는 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();

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

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

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 데이터 형식)