BufferWithCurves(geography 데이터 형식)
적용 대상: SQL ServerAzure SQL Database Azure SQL Managed Instance
호출하는 geography 인스턴스와의 거리가 거리 매개 변수보다 작거나 같은 모든 지점의 집합을 나타내는 지리 인스턴스를 반환합니다.
Syntax
.BufferWithCurves ( distance )
참고 항목
SQL Server 2014(12.x) 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.
인수
distance
버퍼를 구성하는 점과 geography 인스턴스 사이에 허용되는 최대 거리를 나타내는 float입니다.
반환 형식
SQL Server 반환 형식: geography
CLR 반환 형식: SqlGeography
예외
다음 조건은 ArgumentException을 throw합니다.
메서드에 매개 변수가 전달되지 않는 경우(예:
@g.BufferWithCurves()
)숫자가 아닌 매개 변수가 메서드에 전달되는 경우(예:
@g.BufferWithCurves('a')
)NULL 은 메서드에 전달됩니다(예:
@g.BufferWithCurves(NULL)
설명
다음 표에서는 서로 다른 거리 값에 대해 반환된 결과를 보여 있습니다.
거리 값 | 형식 차원 | 반환되는 공간 유형 |
---|---|---|
distance < 0 | 0 또는 1 | 빈 GeometryCollection 인스턴스 |
distance < 0 | 2 이상 | 음수 버퍼가 있는 CurvePolygon 또는 GeometryCollection 인스턴스입니다. 참고: 음수 버퍼는 빈 GeometryCollection을 만들 수 있습니다. |
distance = 0 | 모든 차원 | 호출하는 geography 인스턴스의 복사본 |
distance > 0 | 모든 차원 | CurvePolygon 또는 GeometryCollection 인스턴스 |
참고 항목
거리가 float이므로 매우 작은 값은 0으로 계산될 수 있습니다. 이 경우 호출 geography 인스턴스의 복사본이 반환됩니다.
문자열 매개 변수가 메서드에 전달되면 부동 소수로 변환되거나 throw됩니다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() 호출
다음 예제에서는 거리 매개 변수가 -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. 잘못된 문자열 매개 변수 전달
다음 예제에서는 오류를 throw합니다.
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
이 발생합니다.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기