Data 준비하기
도로명주소 관련 DB 구축이 필요해서 개발자센터에서 전자지도를 다운받았다.
파일은 아래 사진과 같이 행정구역별로 폴더가 구분되어있으며, 각 제공 데이터 별로 dbf, shp, shx으로 3개의 파일이 존재한다. (각각이 의미하는 정보는 데이터 다운 시 pdf 파일로 자세히 나와있음)
전자지도 파일 포맷인 shapefile은 아래와 같은 구조를 가진다. (참고자료:위키피디아)
-
필수 파일
-
.shp
-모양 형식; 특징 기하학 자체 -
.shx
— 모양 색인 형식; 신속하게 앞뒤로 검색 할 수있는 기능 지오메트리의 위치 색인 -
.dbf
— 속성 형식; dBase IV 형식 의 각 도형에 대한 열 속성
-
다른 파일들
-
.prj
— 좌표 참조 시스템 의 잘 알려진 텍스트 표현을 사용하는 투영 설명 -
.sbn
그리고.sbx
— 기능의 공간 인덱스 -
.fbn
그리고.fbx
— 읽기 전용 기능의 공간 인덱스 -
.ain
그리고.aih
— 테이블 에서 활성 필드의 속성 인덱스 -
.ixs
— 읽기-쓰기 데이터 세트에 대한 지오 코딩 색인 -
.mxs
— 읽기-쓰기 데이터 세트에 대한 지오 코딩 색인 (ODB 형식) -
.atx
— (ArcGIS 8 이상) 형식 의.dbf
파일 속성 색인shapefile.columnname.atx
x-gis/x-shapefile
-
.shp.xml
— ISO 19115 또는 기타 XML 스키마 과 같은 XML 형식의 지리 공간 메타 데이터 -
.cpg
— 사용할 문자 인코딩 을 식별하기 위한 코드 페이지 (에만 해당.dbf
)를 지정하는 데 사용됩니다.text/plain
x-gis/x-shapefile
-
.qix
— MapServer 및 GDAL / OGR 소프트웨어에서 사용 하는 대체 쿼드 트리 공간 인덱스
의 각 .shp, .shx 및 .dbf 파일에서 각 파일의 모양은 순서대로 서로 일치한다. (즉, .shp 파일의 첫 번째 레코드는 .shx 및 .dbf 파일의 첫 번째 레코드에 해당한다._ .shp 및 .shx 파일에는 엔디안이 다른 다양한 필드가 있으므로 파일 형식 구현자는 각 필드의 엔디안을 존중하고 적절하게 취급하도록 매우 주의해야 한다.
좌표계 변경하기(UTM-K -> WGS84)
1-1. 지도 Load하기 : OpenLayer Plugin
DB에 데이터를 저장하기 위해서 전자지도 공공데이터의 기초구역(TL_KODIS_BAS) DB 레이아웃과 polygon좌표(해당 기초구역의 위치좌표)를 json 형태로 변환이 필요했다. 따라서 QGIS Desktop이라는 프로그램을 이용한다.
먼저 프로젝트>새로 생성(Ctrl+N)을 통해서 새로운 프로젝트를 생성하며 탐색기의 XYZ Tiles>OpenStreetMap을 실행해서 지도를 켠다. (없을 시 플러그인 관리 및 설치를 통해 OpenLayer Plugin을 설치한다.)
1-2. 지도 Load하기 : Google Tile Map
OpenLayer Plugin을 이용하는 방법보다 더 간단한 방법이 있다.
XYZ Tiles를 이용하는 방법으로 탐색기의 XYZ Tiles > 새 연결... 을 통해 사용가능하다.
이름과 URL을 변경해준다. (URL : www.google.com/maps/vt?lyrs=s@189&gl=cn&x= )
공공데이터 포탈에서 다운받은 shp 파일을 레이어로 옮긴 다음 좌표계 변환을 위해서 마우스 우클릭 후 좌표계 설정>레이어 좌표계 설정을 선택한다.
1-1, 1-2에서 셋팅한 지도의 기본 좌표계는 WGS 84 / Pseudo-Mercator(EPSG:3857)이다.
변경할 좌표계를 선택하여 p 파일을 레이어로 옮긴 다음(레이어 > 레이어 추가 > 백터 레이어 추가) 좌표계 변환을 위해서 마우스 우클릭 후 좌표계 설정>레이어 좌표계 설정을 선택한다.
도로명 주소 전자지도의 경우(ex.TL_SPBD_BULD) 좌표계가 아래와 같다.
Korea 2000 / Unified CS(EPSG:5179)
혹시나, 지도의 모양이 틀어졌거나 로드된 shp 파일이 보이지 않는다면, 오른쪽 하단의 좌표계가 EPSG:3857인지 확인해본다.
geojson으로 변환
좌표계 설정을 마쳤다면 프로젝트의 레이어를 다시 우클릭 한 후 내보내기>객체를 다른 이름으로 저장을 통해 geojson으로 변경해본다. 파일 이름과 좌표계 설정을 원하는 값으로 변경 후, 공간범위를 체크해줘야 내보내는 파일에 공간정보가 함께 담긴다.
변환된 파일의 예시는 아래와 같다.
'FrontEnd' 카테고리의 다른 글
HTTP(Hyper Text Transfer Protocol)이란? (0) | 2021.09.19 |
---|---|
SSR(Server Side Rendering) vs CSR(client Side Rendering) (0) | 2021.09.18 |
[Django] Django 이용해 Web 개발하기 2 - Django App (0) | 2021.01.31 |
[Django] Django 이용해 Web 개발하기1 (0) | 2021.01.30 |
[ubuntu] JAVA 설치하기 (0) | 2020.03.06 |
댓글