반응형
● ST_BUFFER
- Geometry 객체로부터 일정 거리 안에 있는 모든 점을 표현하는 Geometry 객체를 반환하는 함수
● 문법
- ST_BUFFER ( [geom] , [expr] )
- geom : Gemetry 객체를 나타내는 Geometry Type이어야 함
- expr : Geometry 객체로부터의 거리
● 예제
WITH AREAS AS (
SELECT ST_GeomFromText('MULTIPOLYGON(((128.67067043873192 35.217899196980156, 128.67327152937486 35.216835351171625, 128.6727802922496 35.21595015471472, 128.66997510469125 35.21733889427319, 128.67067043873192 35.217899196980156)))') AS GEOM
)
SELECT
GEOM,
ST_BUFFER(GEOM, 0.0001) AS BUFFERED
FROM AREAS;
● 주의사항
- 일부 좌표계의 경우 거리 파라미터(두 번째 파라미터)를 m로 단위로 사용하기 위해서는 3857로 좌표계를 변환이 필요
- 경도, 위도 사용하는 좌표계(4326)는 경도, 위도 간의 각도(decimal degrees) 단위로 측정되어짐
- 따라서 미터 또는 피트와 같은 선형 단위를 사용할 때는 변환이 필요
- Web Mercator 좌표계(3857) : 구글 지도, OpenStreetMap, Bing Maps 등 웹 지도 서비스에서 널리 사용 중
// 4326, 3857 좌표계로 거리 10 버퍼 설정
WITH AREAS AS (
SELECT ST_SETSRID(ST_GEOMFROMTEXT('MULTIPOLYGON(((128.6724370090045 35.21866751610794, 128.67005100235343 35.216374002702985, 128.67178979206858 35.21549864479667, 128.67393158182614 35.217996117138, 128.6724370090045 35.21866751610794)))'), 4326) AS GEOM
)
SELECT
GEOM,
ST_BUFFER(GEOM, 10) AS B4326,
ST_BUFFER(ST_TRANSFORM(ST_SETSRID(GEOM, 4326), 3857), 10) AS B3857
FROM AREAS;
● 상세설정
- quad_segs, endcap, join, mitre, side를 통해 버퍼 라인에 대한 상세표현이 가능
- https://postgis.net/docs/ST_Buffer.html 참고
반응형
'Database > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] pgAdmin에서 테이블 Backup 및 Restore 하기 (0) | 2023.11.27 |
---|---|
[PostgreSQL] 테이블 주석 및 컬럼 주석 조회 (2) | 2023.11.27 |
[PostgreSQL] 한글 정렬이 안될 때(collate) (0) | 2023.11.03 |
댓글