BufferWithCurves(geometry 데이터 형식)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Syntax

.BufferWithCurves ( distance )  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

distance
버퍼를 형성하는 지점이 기하 도형 인스턴스로부터의 최대 거리를 나타내는 부동 소수점입니다.

반환 형식

SQL Server 반환 형식: geometry

CLR 반환 형식: SqlGeometry

예외

다음 조건은 ArgumentExceptionthrow합니다.

  • 메서드에 전달되는 매개 변수가 없습니다(예: @g.BufferWithCurves()

  • 숫자가 아닌 매개 변수가 메서드에 전달됩니다(예: @g.BufferWithCurves('a')

  • NULL 은 메서드에 전달됩니다(예: @g.BufferWithCurves(NULL)

설명

다음 그림에서는 이 메서드에서 반환된 기하 도형 인스턴스의 예를 보여 줍니다.

Diagram showing an example of a geometry instance returned by this method.

다음 표에서는 서로 다른 거리 값에 대해 반환된 결과를 보여 있습니다.

거리 값 형식 차원 반환되는 공간 유형
distance < 0 0 또는 1 GeometryCollection 인스턴스
distance < 0 2 이상 음수 버퍼가 있는 CurvePolygon 또는 GeometryCollection 인스턴스입니다. 참고: 음수 버퍼는 빈 GeometryCollection을 만들 수 있습니다.
distance = 0 모든 차원 호출하는 geometry 인스턴스의 복사본
distance > 0 모든 차원 CurvePolygon 또는 GeometryCollection 인스턴스

참고 항목

거리float이므로 매우 작은 값은 0으로 계산될 수 있습니다. 이 경우 호출 기하 도형 인스턴스의 복사본이 반환됩니다. float 및 real(Transact-SQL)을 참조하세요.

버퍼가 음수이면 기하 도형의 경계에서 지정된 거리 내에 있는 모든 요소가 제거됩니다. 다음 그림에서는 네거티브 버퍼를 원의 밝은 음영 영역으로 보여 줍니다. 점선은 원래 다각형의 경계이고 실선은 결과 다각형의 경계입니다.

문자열 매개 변수가 메서드에 전달되면 부동 소수로 변환되거나 throw됩니다ArgumentException.

예제

A. 1차원 geometry 인스턴스에서 매개 변수 값 < 0인 BufferWithCurves() 호출

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

 DECLARE @g geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.BufferWithCurves(-1).ToString(); 

B. 2차원 geometry 인스턴스에서 매개 변수 값 < 0인 BufferWithCurves() 호출

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

 DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))'; 
 SELECT @g.BufferWithCurves(-1).ToString()

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

다음 예제에서는 거리 매개 변수가 -2와 같을 때 발생하는 일을 보여 줍니다.

 DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))'; 
 SELECT @g.BufferWithCurves(-2).ToString();

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

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

다음 예제에서는 호출 기하 도형 인스턴스의 복사본을 반환합니다 .

 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.BufferWithCurves(0).ToString();

E. 0이 아닌 매개 변수 값이 매우 작은 BufferWithCurves() 호출

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

 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'; 
 DECLARE @distance float = 1e-20; 
 SELECT @g.BufferWithCurves(@distance).ToString();

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

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

 DECLARE @g geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.BufferWithCurves(2).ToString();

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

다음 예제에서는 앞에서 멘션 동일한 CurvePolygon 인스턴스를 반환하지만 문자열 매개 변수는 메서드에 전달됩니다.

 DECLARE @g geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.BufferWithCurves('2').ToString();

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

다음 예제에서는 오류를 throw합니다.

 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)' 
 SELECT @g.BufferWithCurves('a').ToString();

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

9\. MultiPoint 인스턴스에서 BufferWithCurves() 호출

다음 예제에서는 두 개의 GeometryCollection 인스턴스와 하나의 CurvePolygon 인스턴스를 반환합니다.

 DECLARE @g geometry = 'MULTIPOINT((1 1),(1 4))'; 
 SELECT @g.BufferWithCurves(1).ToString(); 
 SELECT @g.BufferWithCurves(1.5).ToString(); 
 SELECT @g.BufferWithCurves(1.6).ToString();

처음 두 SELECT 문은 매개 변수 distance가 두 요소(1 1)과(1 4) 사이 거리의 1/2보다 작거나 같기 때문에 GeometryCollection 인스턴스를 반환합니다. 세 번째 SELECT 문은 두 점(1 1) 및 (1 4)의 버퍼링된 인스턴스가 겹치므로 인스턴스를 반환 CurvePolygon 합니다.

참고 항목

Geometry 인스턴스의 확장 메서드