카테고리:

지리 공간 함수

ST_BUFFER

입력 GEOMETRY 오브젝트의 지정된 거리 내에 있는 지점을 포함하는 MultiPolygon을 나타내는 GEOMETRY 오브젝트를 반환합니다. 반환된 오브젝트는 사실상 입력 오브젝트 주변의 ‘버퍼’를 나타냅니다.

거리에 음수 값을 지정하여 입력 오브젝트를 ‘축소’할 수도 있습니다.

구문

ST_BUFFER( <geometry_expression> , <distance> )
Copy

인자

geometry_expression

인자는 GEOMETRY 형식의 식이어야 합니다.

distance

GEOMETRY 오브젝트로부터의 거리입니다. 오브젝트를 ‘축소’하려면 거리에 음수 값을 지정하면 됩니다.

반환

GEOMETRY 오브젝트를 반환합니다.

사용법 노트

  • ST_BUFFER는 8개의 세그먼트를 사용하여 사분원에 가까운 도형을 만듭니다.

  • distance 가 음수 값일 경우 반환되는 오브젝트는 입력 오브젝트보다 작습니다. 이것을 사용하여 도형에서 작은 불규칙성을 제거할 수 있습니다.

  • LineStrings의 경우 끝마디 스타일과 결합 스타일은 항상 둥근 형태입니다.

  • LineStings는 항상 양쪽에서 버퍼링됩니다.

다음 예에서는 반지름이 1인 점 주위의 다각형을 반환합니다.

SELECT ST_BUFFER(TO_GEOMETRY('POINT(0 0)'), 1);

+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ST_BUFFER(TO_GEOMETRY('POINT(0 0)'), 1) |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| MULTIPOLYGON(((1 0,0.9807852804 -0.195090322,0.9238795325 -0.3826834324,0.8314696123 -0.555570233,0.7071067812 -0.7071067812,0.555570233 -0.8314696123,0.3826834324 -0.9238795325,0.195090322 -0.9807852804,6.123233996e-17 -1,-0.195090322 -0.9807852804,-0.3826834324 -0.9238795325,-0.555570233 -0.8314696123,-0.7071067812 -0.7071067812,-0.8314696123 -0.555570233,-0.9238795325 -0.3826834324,-0.9807852804 -0.195090322,-1 7.657137398e-16,-0.9807852804 0.195090322,-0.9238795325 0.3826834324,-0.8314696123 0.555570233,-0.7071067812 0.7071067812,-0.555570233 0.8314696123,-0.3826834324 0.9238795325,-0.195090322 0.9807852804,2.480838239e-15 1,0.195090322 0.9807852804,0.3826834324 0.9238795325,0.555570233 0.8314696123,0.7071067812 0.7071067812,0.8314696123 0.555570233,0.9238795325 0.3826834324,0.9807852804 0.195090322,1 0))) |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Copy

다음 예에서는 distance 에 음수 값을 사용하여 도형에서 작은 불규칙성(예: 스파이크)을 제거합니다. TO_GEOMETRY 호출은 TRUE를 두 번째 인자로 전달하여 함수가 유효하지 않은 도형 에 대한 GEOMETRY 오브젝트를 생성할 수 있도록 합니다.

SELECT ST_BUFFER(TO_GEOMETRY('SRID=2261;POLYGON((1540792.21541900 290472.63529214, 1547018.61770388 302537.02285369, 1546965.96550151 302752.51514772, 1547018.61770388 302537.02285369,
1549532.42729914 301257.07398027, 1543327.42218339 289322.60923536, 1540792.21541900 290472.63529214))', True), -1e-08) AS geom;

+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                                                                        GEOM |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| MULTIPOLYGON(((1543327.42218339 289322.609235373,1540792.21541901 290472.635292145,1547018.61770388 302537.022853677,1549532.42729913 301257.073980266,1543327.42218339 289322.609235373))) |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Copy