개발공작소
article thumbnail
728x90

 

 

 

 

문제발생

 

 

이번에 연속지적도를 QGIS를 통해서 Postgresql에 넣으려고 하니 위와 같은 에러가 발생했다.

Polygon must have closed rings라는 에러인데, 문구만 보면 Polygon이 아닌 녀석이 숨어있다..

linestring이 숨어 있는 거 같은데.. 

 

어떻게 할까 하다가, 부장님이 QGIS에 도형수정 이라는 기능이 있어서 자동으로 잡아준다고 한다.

 

도형수정

 

1. 도형수정 팝업창 활성화

 

[공간처리] -> 툴박스(T)를 통해 툴박스를 활성화 해주자.

만약 QGIS에 툴박스가 안보인다면 아래 링크를 참고하도록 하자.

 

[GIS] QGIS에서 툴박스가 안보일 때 해결방법

 

[GIS] QGIS에서 툴박스가 안보일 때 해결방법

공간정보 작업을 처리할 때 공간처리 메뉴를 통해 툴박스를 켜야 하는데, 메뉴에 공간처리가 보이지 않아, 툴박스를 실행하지 못하는 문제가 생길 수 있다. 이때는 당황하지 말고 아래처럼 해주

bongra.tistory.com

 

 

이제 툴박스에서 벡터도형 -> 도형수정을 선택하여 도형수정 팝업을 활성화 해준다.

 

 

입력레이어에서 자신이 도형을 수정하고 싶은 레이어를 지정하고 그냥 실행을 누르면 된다.

 

( 수정한 도형을 임시레이어로 생성하도록 하자. 이상하게 파일로 저장하면 텍스트가 인코딩이 안되는건지 실제 DB에 넣었을 때 깨지더라... 생성한 임시레이어로 SHP파일을 내보낸 뒤, 그 SHP을 DB에 넣으면 된다... )

 

 

알고리즘 처리 완료

 

다시 import

 

이제 수정한 도형을 가지고 다시 DB에 import 해보도록 하자.

 

 

 

import 성공... 제대로 된다..

 

이 도형수정을 사용하면, 유효하지 않은 도형들을 한번에 처리할 수 있다.

( 정확히 어떤 로직인지 모름.. 왜 Polygon만 된다고 하는지도... import할 때, geometry 타입을 지정하는 것도 아닌데.. )

 

이 방법 말고도 PostGIS 확장팩을 통해 직접 DB에 import할 수도 있다. 끝

 

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!