728x90
반응형
PostGIS에 저장된 폴리곤 레이어가 있다고 가정하고, 이 레이어의 feature들 중 내가 설정한 영역과 중복되는 폴리곤들의 면적을 구하는 한줄 쿼리 입니다.
select pnu, ST_Area(
st_intersection(
geom,
st_transform(
st_setsrid(st_geomfromtext('POLYGON ((127.00143 37.49791, 127.00635 37.49791, 127.00635 37.50109, 127.00143 37.50109, 127.00143 37.49791))'), 4326),
3857)))as area
from lp_pa_cbnd
where st_intersects(geom,
st_transform(
st_setsrid(st_geomfromtext('POLYGON ((127.00143 37.49791, 127.00635 37.49791, 127.00635 37.50109, 127.00143 37.50109, 127.00143 37.49791))'), 4326),
3857))
면적을 구하는 함수는 ST_Area이고, st_intersection으로 중복되는 영역의 폴리곤을 구합니다.
사용자가 입력하는 도형은 WKT(Well Known Text) 형태로 입력할 때는 st_geomfromtext 함수를 이용하고, 만약 입력 형태가 GeoJson이라면 st_geomfromtext 대신에 st_geomfromgeojson 함수를 사용하면 됩니다.
st_setsrid와 st_transform을 이용해 레이어에 저장된 geometry의 좌표계와 사용자 입력 좌표계를 동일하게 한 후에 insersection 면적을 구할 수 있습니다.
where 절의 st_intersects는 리턴값이 true 또는 false의 boolean 값으로 교차하는 피처 레코드만 선택하기 위해 사용했습니다.
728x90
반응형
'공간정보 > 한줄 팁(Tip)' 카테고리의 다른 글
아나콘다 가상환경 생성하기/내보내기/불러오기 (0) | 2022.11.14 |
---|---|
윈도우 Speech Properties 창 띄우기 (0) | 2022.05.12 |
한줄 팁 - Postgresql에서 CSV 바로 만들기 (0) | 2022.02.16 |
한줄 팁 - 여러 개의 shp 파일을 하나로 합치기 (0) | 2022.01.21 |
한줄 팁 - 좌표 입힌 GeoTiff 파일 만들기 (0) | 2022.01.21 |