카카오 지도 api를 사용하여 폴리곤을 만드는 도중, 행정구역에 대한 좌표가 필요했고, 이에 맞는 정보를 찾다가
QGIS라는 프로그램을 통해 json정보를 얻을 수 있다는 글을 보았고, 이와 관련하여 여러 블로그 정보를 보고 정리를 하였다.
1. 행정구역에 대한 파일 얻기(feat. shp파일)
- 이 행정구역 좌표에 대한 정보는 gisdeveloper <- 이곳에서 shp파일로 제공을 해준다.
- 사이트에 들어가면, 시도, 시군구, 읍면동, 리 이렇게 네가지 카테고리가 나오는데, 나누고자 하는 행정구역에 맞게
최신 버전으로 다운 받으면 된다.
- 다운을 받고 압출을 풀면, 다음과 같은 파일들이 나온다.
2. QGIS 프로그램
- QGIS는 데스크톱 지리 정보 체계를 분석하는 프로그램으로, 우리가 원하는 지리 정보에 대한 분석과 파일을
convert 해주는 유용한 프로그램이다.
- 이 프로그램의 다운 방법은 다음과 같다. QGIS다운로드
- 위 사이트를 통해 프로그램을 다운받고 작업표시줄 검색착에 'q'라고만 입력해도 QGIS DESKTOP 3.8.1이라는 실행
파일이 나온다. 이 프로그램을 실행시켜주자. 그러면 아래와 같은 화면이 나온다.
- 그 다음, [백터] -> [레이어 추가] -> [백터 레이어 추가]를 눌러주면, 다음과 같은 화면이 나온다.
- 이제 여기에서 '백터 데이터셋' 이라고 되어 있는 부분의 맨 오른쪽 ...을 클릭해서 파일을 추가해 줄건데, shp파일과, shx 파일 두가지를 다음과 같이 클릭해서 [열기]를 클릭한 후 위 화면의 [추가]를 누르고 [닫기]를 눌러주자.
- 그러면 아래와 같은 지도가 나오게 된다.
- 이제 그림 옆의 추가된 레이어에서 두 번째 레이어를 제거해준다. 이것을 추가해주고, 제거해주는 이유는 이 shx파일이
index역할을 하는 파일이고, 좌표상에서 이 인덱스를 통해 빠르게 해당 지도를 찾게해주는 역할을 해준다고 한다.
우리가 작업할 때는 이 파일이 없어도 따로 문제가 일어나지 않는 것을 확인하였기에 지도를 뽑았으면 삭제해도된다.
- 현재 레이어 [TL_SCCO_SIG]를 우클릭 한 후, [필터 설정]을 클릭하게 되면 다음과 같은 화면이 나온다.
- 이 화면은 SQL처럼 쿼리문을 통해 내가 원하는 행정구역들을 뽑을 수 있게 해준다.
- 그럼 내가 원하는 행정구역은 어떻게 뽑을 수 있을까? 이것은 현재 레이어인 TL_SCCO_SIG]를 다시 우클릭하고
[속성 테이블 열기]를 눌러 보자. 그럼 아래와 같은 화면이 나오는데, 행정구역들에 대한 인덱스는 [SIG_CD]라는 컬럼 을 통해서 확인이 가능하고, 이 코드는 나라에서 지정한 코드 같다. 서울시는 법정코드가 11로 시작한다.
- 다시 아까 필터 설정으로 돌아와서 [제공자 전용 필터 표현식]에 쿼리문을 작성해줄건데, 이 떄는 아까 속성 테이블에 서 보았던 [SIG_CD]를 이용하여 작성할 것이다. 그리고, 우리가 구하고자 하는 데이터는 서울시에 해당하는 데이터이 므로, 11로 시작하는 데이터를 뽑아야한다. 그러므로 다음과 같이 적어주고 확인. 이 때, 주의해야할 점은 11% 부분에
더블쿼트가 아닌 싱글쿼트로 적어줘야 값을 제대로 뽑아온다.
- 이렇게 하면 이제 우리가 원하는 서울시에 해당하는 행정구역 지도를 뽑아왔다.
- 하지만, 아직 이 파일은 shp 파일이므로, 이 파일을 json파일로 바꿔주기 위한 작업을 하겠다.
- 해당 레이어 우클릭 -> [내보내기] -> [객체를 다른 이름으로 저장] 클릭
- 여기에서 포맷은 [GeoJSON] 으로 설정
- 좌표계 설정은 api를 지원하는 곳에서 사용하는 좌표계로 설정
- 이 파일을 열어보면, 아래와 같은 JSON형식으로 저장이 된다.
- QGIS로 만든 GeoJSON파일은 폴리곤 타입이 멀티폴리곤이다.
- 네이버 지도 api같은 경우에 애초에 GeoJSON형식을 파싱해주는 함수를 제공해주고 있어서 바로 사용이 가능하지만,
카카오지도는 이를 제공해주고있지 않고, 싱글폴리곤 형식으로 사용을 해야한다.
- 따라서 카카오 지도에서 이와같이 사용할 경우, 파일을 저장할 때, 아래와 같이 ESRI shapfile 포맷으로 저장을 한다.
- 그리고 https://mygeodata.cloud/ <- 이 사이트에 들어가서 아래 빨간 박스 부분의 [Go to Convert]를 클릭
- 들어가서 [Or browse files to Convert]를 클릭
- [Add files]를 클릭하고, 아까 내보내기로 만들어졌던 파일들을 모두 올리자.
- 여기서 [output Frame]에는 GeoJson을 선택해주고, 아래 사진의 빨간박스 부분이 좌표계 설정인데, 해당 api나 사용하
려는 좌표계에 맞게 바꿔주고 [convert now]를 클릭해준다음 다운을 받아주면, 싱글폴리곤 타입의 파일을 만들 수 있
다.
'Open API > QGIS' 카테고리의 다른 글
QGIS- 단편화 작업 (1) | 2019.08.08 |
---|