반응형

PostGIS 6

[PostGIS] st_equals 함수 속도 느림 공간 index 안타는 문제

공간 테이블 geometry 컬럼 gist 인덱스 설정되어 있는 상태 st_equals 함수 사용하면 속도가 너무 느림. 공간 인덱스 안타는 것 같음 느린 쿼리문 SELECT t1.geom, t2.geom FROM table_a t1 join table_a t2 ON st_equals(t1.geom, t2.geom) 인덱스 타도록 쿼리문 수정 SELECT t1.geom, t2.geom FROM table_a t1 join table_a t2 ON (st_equals(t1.geom, t2.geom) and t1.geom && t2.geom) 위 쿼리문 테스트 결과 인덱스 잘 탐

PostGIS 2022.07.11

[PostGIS] 좌표계 변환 함수(ST_Transform, ST_SetSRID)

국가공간정보포털에서 제공하고 있는 공간 데이터를 활용하려고 shp 파일을 다운로드해서 내 DB 에 업로드하였다. 내 DB 에 구축되어 있는 모든 공간 데이터는 5186 좌표계 국가공간정보포털에서 다운로드 받은 공간 데이터는 2097 좌표계 기존 DB 에 구축된 공간 정보들과 같이 서비스하기 위해서 좌표 변환 필요 2097 좌표계 파일을 그대로 공간 테이블에 import 해당 테이블의 geometry 정보 좌표 변환 update table set geom = st_transform(st_setsrid(geom, 2097), 5186); ST_SetSRID : geometry 데이터에 좌표계에 대한 정보를 넣는 함수 ST_Transform : geometry 데이터의 좌표계를 변환하는 함수

PostGIS 2022.06.29

[PostGIS] geosintersects topologyexception 발생 시 대처 방법

공간 쿼리 수행 중 st_intersects 함수에서 geosintersects topologyexception 발생. 원인 : Geometry 객체 중 MULTIPOLYGON 객체 데이터가 유효하지 않은 상태라서 st_intersects 함수 실행 불가. MULTIPOLYGON 객체에 구멍이 있는 경우 OGC 표준에 맞게 그려지지 않아서 자주 발생. 객체가 유효한지 확인하는 방법 SELECT st_isvalid(geom) FROM TABLE; 유효하면 true, 유효하지 않으면 false 반환. 유효하지 않는 객체를 유효하게 수정 편집하는게 가장 좋은 방법.. 내 경우 데이터를 편집할 수 있는 권한이 없었음. 그럼에도 불구하고 st_intersects 함수 수행하야 할 때.. SELECT st_inte..

PostGIS 2022.05.27

[PostGIS] Polygon 단위로 겹치는 Geometry 조회

두개의 Geometry 객체가 겹치는지 조회하는 함수는 st_intersects(geom, geom) 이다. 프로젝트 중 두개의 Geometry 객체가 Polygon 단위로 겹치는지 체크하고 싶어서 해당 함수을 사용하였으나 point, line 단위로 겹치는 객체까지 모두 반환한다. 아래 쿼리를 활용하면 Polygon 단위로 겹치는 객체만 체크할 수 있다. SELECT * FROM TABLE_A A JOIN TABLE_B B ON st_intersects(A.GEOM, B.GEOM) = true AND st_geometrytype(st_intersection(A.GEOM, B.GEOM)) = 'ST_Polygon';

PostGIS 2022.05.27

[postgresql] postGIS 공간 쿼리 함수

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 객체에 일정 거리 기준의 ..

PostGIS 2022.05.27
반응형