-
Notifications
You must be signed in to change notification settings - Fork 2
지도 라이브러리 folium
HaeBin edited this page Nov 8, 2023
·
1 revision
- python에서 제공하는 지도를 다루는 대표적인 라이브러리
- 지도를 생성하고 Marker를 추가하여 시각화하거나 원으로 범위를 표기하고 html 파일로 내보내기 등을 수행한다.
- 설치 :
pip install folium
- 사용 :
import folium
-
folium.Map(location=[위도, 경도], zoom_start=숫자)
- location : 처음 지도 띄울 때의 좌표
- zoom_start : 처음 지도 띄울 때의 확대 정도. 최대 18
-
folium.Choropleth()
- 단계구분도(Choropleth Map)를 표시하는 기능
- 즉, 행정구역 등과 같이 지도상의 어떤 경계로 구분된 지도 영역에 색을 칠하거나 음영 등을 넣어 정보를 나타내는 기능이다.
예시
...
folium.Choropleth(
geo_data = "json파일" #경계선 좌표값이 담긴 파일
data = data #DataFrame (주로 excel파일이나 csv파일을 pandas를 사용해서 변환)
columns = ['fields1', 'fields2'] #columns[0]은 key_on과 매핑되는 (String)값, columns[1]은 시각화를 위한 값
key_on = 'fields명' #geo_data의 필드명
fill_color = '색상'
fill_opacity = '색의 투명도'
line_opacity = '경계선의 투명도'
legend_name = '시각화 범주 이름'
)add_to(map)
...
-
tooltip
: 마우스 올리면 보여질 정보 -
popup
: 클릭하면 보여질 정보
popup 예시
...
folium.GeoJson(
geo_data = "json파일" #경계선 좌표값이 담긴 파일
popup = folium.GeoJsonPopup(
fields = ['필드명1', '필드명2', ..], #geo_data의 필드명(경로 필요없이 필드이름만 작성)
aliases = ['시이름', '지역명', '코드번호']
)
).add_to(map)
- 기본적으로 folium은 html파일로 save할 수 있다.
- Django template에 삽입하기 위해 iframe이 있는 문자열로 반환하는 작업이 필요하다.
=>map = map._repr_html_()
- render할 때 dict형식으로 보내준다.
=>render(request, 'html파일 경로', {'my_map' : map})