국가공간정보포털 API의 pnu(필지고유번호) 획득 방법

sig03
3 min readAug 22, 2022

--

(출처: 국가공간정보포털)

토지 이음(https://www.eum.go.kr/web/am/amMain.jsp) 서비스를 대체할 서비스를 만들고 있다. 토지 정보 획득을 위해 국가공간정보포털(http://www.nsdi.go.kr/lxportal)의 api 를 사용하려고 하는데 api를 호출하려면 pnu라는 필지고유코드번호를 보내줘야 한다.

그런데 문제는 어디에도 필지고유번호를 리턴해주는 api가 없다는 것이다. 아마 주소 검색을 하면 db 쿼리가 어려워지니 딱 들어맞는 코드를 보내게 만든 것 같은데 그러면 그걸 검색할 수 있는 api를 제공해야하건만 그런건 없다. 호출 url도 http를 사용하고 있고 전체적으로 관리가 안 되는 느낌이다. 종종 api 오류도 나고 대부분의 api 리턴값이 xml로 되어 있다. 딱 공무원스럽게 만들어져 있다. 난 만들었으니 알아서 써라 하는 느낌이다.

어쨌건 주소를 가지고 pnu값을 만들어야 하는데 이걸 만드는 공식은 있다.

참조: https://devlog.jwgo.kr/2020/01/20/how-to-get-pnu/

위 사이트에 보면 아래와 같은 방법으로 만들면 된다고 한다.

4311425346(행정구역코드) + 1(필지구분, 일반은 1 산은 2) + 0150(본번을 0000으로 패딩) + 0006(부번을 0000으로 패딩)

행정구역코드만 있으면 나머지는 주소에서 추출할 수 있다. 필지구분은 무조건 일반이라고 가정하고 작업했다.

주소로 행정구역코드를 검색할 수 있는 api가 카카오 디벨로퍼스에서 있다.

카카오 디벨로퍼스 로컬: https://developers.kakao.com/docs/latest/ko/local/dev-guide#address-coord-documents-address

여기에 쿼리로 지역명을 입력하면 리턴값에 b_code 값이 행정구역코드이다. 그리고 main_address_no와 sub_address_no의 값을 패딩해서 쓰면 된다.

b_code + 1 (일반으로만 가정함) + main_address_no + sub_address_no

카카오 api는 잘 만들어져 있다. 빠르고 json으로 리턴해주고 주소도 지번 주소, 도로명 주소 다 받아준다. 여기서 pnu 값을 만들어 국가공간정보포털의 api를 호출하면 된다.

국가공간정보포털에서 지도를 검색하려 했더니 좌표값을 보내야 한단다. 당연히 좌표값 검색하는 api 따위는 없다. 그걸 연구하려 했더니 GIS 에 대해서 공부해야 하는가 보더라. 배보다 배꼽이 더 큰 스터디가 될 것 같아서 그냥 포기했다.

--

--

sig03
sig03

No responses yet