2010년 1월 7일 목요일

[ArcGIS]지적도 토지코드 분리 VBA Script

일반적으로 KLIS 지적도의 속성에는 토지코드(PNU), 지번(JIBUN) 이 있습니다.

토지코드(PNU)는 19자리의 숫자로 구성되어 있으며 각각의 의미는 다음과 같습니다.
 - 시도(2)+시군구(3)+읍면동(3)+리(2)+토지구분1(1)+본번(4)+부번(4)
 - 2720010200106040023(대구광역시 남구 봉덕동 604-23 번지)
지번(JIBUN)은 본번-부번 지목(551-27 대)으로 구성됩니다.

ArcGIS 9.4버전부터는 VBA를 버리고 Python으로 대체한다고 들었습니다만, 현재까지는 가장 유용하게 사용할 수 있는 도구가 VBA입니다.

여기에서는 ArcMap에 지적도(편집/연속지적)를 추가한 후  행정코드(DONG_CODE, 10자리), 산구분(SAN, 1자리), 번지(BONBUN, 4자리), 호(BUBN, 4자리), 지목(JIMOK, 2자리), 필지중심점X(CX, Double), 필지중심점Y(CY, Double) 필드를 추가한 후 각 속성을 계산하는 스크립트입니다.


피쳐 유형은 폴리곤/포인트 모두 사용 가능합니다.

▣ 전제사항
 - ArcMap에 지적도 레이어가 추가되어 있고 이름은 "지적도"일것
 - 지적도에는 19자리의 PNU와 지번(마지막은 지목) 필드를 포함할 것
 - 레이어는 Shapefile, Personal GDB(mdb), File GDB일것
 - 스크립트 실행 조건은 편집 상태가 아닐것(Update Cursor를 사용하기 때문임)

▣ 메인 코드

펼쳐두기..


▣ IMap으로부터 FeatureLayer를 얻는 함수

펼쳐두기..


▣  Table(FeatureClass)에 필드를 추가하는 함수

펼쳐두기..


▣ 전체 소스코드
▣ 계산결과 예시

댓글 2개:

  1. 질문이 있어서 그러는데요.. 산구분에 보면 1번의 경우 "일반" 지번이 되고 2번일 경우 "산"지번이 되는데....8번이나 9번은 무슨의미를 가지고 있는지 궁금합니다.

    답글삭제
  2. ========================================
    1 일반번지
    2 산번지 산
    3 가지번 가
    4 가지번(부번세분) 가
    5 블럭지번 BL
    6 블럭지번(롯트세분) BL
    7 블럭지번(지구) 지구 BL
    8 블럭지번(지구-롯트) 지구 BL
    9 기타지번
    ========================================

    답글삭제