PostGIS

[postgresql] postGIS 공간 쿼리 함수

박진만 2022. 5. 27. 09:52
반응형

1. ST_AREA

멀티 폴리곤의 면적을 반환. 멀티 폴리곤 GEOMETRY TYPE 만 가능하다.

SELECT ST_AREA(GEOM)
FROM TABLE;

2. ST_ASBINARY

GEOMETRY 객체를 WKB(Well Known Binary) 형태로 반환

SELECT ST_ASBINARY(GEOM) 
FROM TABLE;

3. ST_ASTEXT

GEOMETRY 객체를 WKT(Well Known Text) 형태로 반환

SELECT ST_ASTEXT(GEOM) 
FROM TABLE;

4. ST_BOUNDARY

GEOMETRY 객체의 경계를 반환

SELECT ST_ASTEXT(GEOM), ST_BOUNDARY(GEOM)
FROM TABLE;

5. ST_BUFFER

GEOMETRY 객체에 일정 거리 기준의 범위가 추가된 GEOMETRY 객체를 반환

SELECT ST_BUFFER(GEOM, 10) 
FROM TABLE;

6. ST_CENTROID

GEOMETRY 객체의 중심점을 반환. 폴리곤 GEOMETRY TYPE 만 가능하다.

SELECT ST_CENTROID(GEOM)
FROM TABLE;

7. ST_CONTAINS

GEOMETRY 객체 2가 GEOMETRY 객체 1의 외부에 존재하지 않고, 객체 1의 내부에 하나 이상의 포인트가 존재할 때만 true 를 반환

SELECT ST_CONTAINS(
SELECT A.GEOM FROM TABLE_A A WHERE A.KEY = 'xxx'
, SELECT B.GEOM FROM TABLE_B B WHERE B.KEY = 'xxx'
);

8. ST_CONVEXHULL

GEOMETRY의 convex hull 을 반환. convex hull은 GEOMETRY 객체를 포함하는 제일 작은 볼록한 폐곡선을 의미한다.

SELECT ST_CONVEXHULL(GEOM)
FROM TABLE;

9. ST_CROSSES

두 GEOMETRY 객체가 교차하면 true 를 반환. 포함관계에 있거나, 경계가 닿아 있는 경우는 해당하지 않는다.

SELECT ST_CROSSES(
SELECT A.GEOM FROM TABLE_A A WHERE A.KEY = 'xxx'
, SELECT B.GEOM FROM TABLE_B B WHERE B.KEY = 'xxx'
);

10. ST_DIFFERENCE

GEOMETRY 객체 2와 겹치지 않는 객체 1의 부분을 반환

SELECT ST_DIFFERENCE(
SELECT A.GEOM AS GEOM1 FROM TABLE_A A WHERE A.KEY = 'xxx'
, SELECT B.GEOM AS GEOM2 FROM TABLE_B B WHERE B.KEY = 'xxx'
);

11. ST_DIMENSION

GEOMETRY 객체의 차원을 반환

SELECT ST_DIMENSION(GEOM)
FROM TABLE;

12. ST_DISJOINT

두 GEOMETRY 객체가 어떤 영역도 공유하지 않을 때 true 를 반환

SELECT ST_DISJOINT(
SELECT A.GEOM AS GEOM1 FROM TABLE_A A WHERE A.KEY = 'xxx'
, SELECT B.GEOM AS GEOM2 FROM TABLE_B B WHERE B.KEY = 'xxx'
);

13. ST_DISTANCE

두 GEOMETRY 객체사이의 최단 거리를 반환

SELECT ST_DISJOINT(
SELECT A.GEOM AS GEOM1 FROM TABLE_A A WHERE A.KEY = 'xxx'
, SELECT B.GEOM AS GEOM2 FROM TABLE_B B WHERE B.KEY = 'xxx'
);

14. ST_ENDPOINT

라인 스트링 GEOMETRY 객체의 마지막 포인트를 반환. LINESTRING 객체만 사용 가능.

SELECT ST_ENDPOINT(GEOM)
FROM TABLE;

15. ST_ENVELOPE

주어진 GEOMETRY 객체를 둘러싸는 사각형을 GEOMETRY 형태로 반환

SELECT ST_ENVELOPE(GEOM)
FROM TABLE;

16. ST_MULTI

GEOMETRY 를 MULTI GEOMETRY 컬렉션으로 반환. 지오메트리가 이미 MULTI  컬렉션인 경우 변경되지 않은 상태로 반환.

SELECT ST_AsText(ST_Multi('POLYGON ((10 30, 30 30, 30 10, 10 10, 10 30))'));
반응형