1. 사용데이터
KTDB 국가교통데이터베이스(https://www.ktdb.go.kr/www/index.do)에서 철도망, 철도역, 행정경계 데이터 다운로드
-자료신청 및 다운로드 방법
1) KTDB 국가교통데이터베이스 회원가입
2) 상단 메뉴에서 정보공개 > 자료신청

3) 교통분석자료 신청

4) 다음과 같이 원하는 자료를 선택

5) 신청서 작성을 완료하고 몇 분 뒤 신청이 승인되었다는 문자가 오면
마이페이지 > 자료신청내역에서 데이터 다운로드

2. QGIS에서 SHP파일 GeoJSON파일로 변환하기
ktdb에서 받은 파일은 shp 형태이고 folium에서 지도를 시각화하기 위해서 GeoJSON파일이 필요
따라서, QGIS에서 shp파일을 GeoJSON으로 변환
2-1. QGIS에서 shp파일 불러오기



2-2. 불러온 레이어 우클릭 > 내보내기 > 객체를 다른 이름으로 저장

2-3. 포맷을 GeoJSON으로 설정 후 이름 작성하고 좌표계는 EPSG: 4326-WGS 84로 설정


2-4. 확인 누른 뒤 rail_route_station에도 똑같이 적용하면 shp파일을 geojson파일로 저장 완료
2-5. 행정경계 파일도 위의 과정을 거쳐 GeoJSON파일로 변환
3. 파이썬에서 GeoJSON파일 불러오기
import json
# 철도망
rail_route='rail_route_geojson.geojson'
rail_route_str=json.load(open(rail_route,encoding='utf-8'))
# 철도역
rail_route_station='rail_route_station_geojson.geojson'
rail_route_station_str=json.load(open(rail_route_station,encoding='utf-8'))
4. 파이썬에서 folium으로 지도 불러오기
import folium
m=folium.Map(location=[36.3435957365,127.7828455523],zoom_start=7)
-location 내부의 좌표는 우리나라의 중심점 좌표
-좌표를 중심으로 zoom을 7로 맞추어 지도의 처음 화면이 우리나라 전체를 보여줄 수 있도록 조정

5. folium 지도에 GeoJSON파일의 데이터 적용하기
import folium
m=folium.Map(location=[36.3435957365,127.7828455523],zoom_start=7)
# folium 지도 m에 앞서 불러온 도시철도 노선과 도시철도 역의 GeoJSON파일 적용시키기
folium.GeoJson(rail_route_str, name="도시철도 노선").add_to(m)
folium.GeoJson(rail_route_station_str, name="도시철도 역").add_to(m)
# 범례와 비슷한 역할로 지도위에 표시된 요소들을 알 수 있고 요소들을 끄고 켤수 있는 기능
folium.LayerControl().add_to(m)
# 지도 출력
m

확대해보면 다음과 같이 철도 노선과 철도 역들이 전부 표시되어있음
