영벨롭 개발 일지

[Python]지도 시각화 folium 라이브러리 사용법 본문

Programming Language/Python

[Python]지도 시각화 folium 라이브러리 사용법

영벨롭 2022. 5. 7. 17:37

[ folium 이란? ]

 

 folium은 python에서 제공하는 지도를 다루는 대표적인 라이브러리 입니다. 

 

 이것을 사용하여 지도를 생성하고 Marker를 추가하여 시각화하거나 원으로 범위를 표기하고 html 파일로 내보내기 등을 수행할 수 있습니다. 

 

 

 

 

[ folium 설치 & import ]

 

 터미널에 다음 명령어를 입력하여 folium 라이브러리를 설치합니다!

 

$ pip install folium

 

 설치가 완료되면 코드를 작성할 파일에 import 합니다. 

 

import folium

 

 

 

 

[ 지도 띄우기 - folium.Map() ]

 

 folium.Map()을 이용하여 처음 화면이 나오는 부분을 설정합니다. 

 

 location지도의 기준이 될 위도와 경도의 좌표를 전달합니다.

 

 zoom_start는 처음 지도를 봤을 때의 확대 정도를 나타내고 최댓값은 18입니다. 

 

 만약 location 값과 zoom_start 값을 지정하지 않으면 전 세계 지도를 기준으로 띄어줍니다. 

 

기본형
folium.Map(location=[위도, 경도], zoom_start=숫자)

 

 

- 내가 만든 지도를 html 형식으로 저장

 

 이렇게 만든 지도는 save() 메소드를 통해 html 형식으로 저장이 가능합니다. 

 

기본형
folium.Map([ ... ]).save('파일이름.html')

 

 

import folium

myMap = folium.Map(location=[37.4729081, 127.039306], zoom_start=10)

myMap.save('index.html')

 

 

 

- 지도의 스타일 지정 

 tiles = '스타일' 속성을 사용하여 지도의 스타일도 지정할 수 있습니다. 

 

속성값
OpenStreetMap Stamen Terrain Stamen Toner
Stamen Watercolor CartoDB positron CartoDB dark_matter
Mapbox Bright Mapbox Control Room Cloudmade
Mapbox    

 

 

[ Stamen Terrain ]

myMap = folium.Map(location=[37.4729081, 127.039306], zoom_start=12, tiles='Stamen Terrain')

 

 

[ CartoDB positron ]

myMap = folium.Map(location=[37.4729081, 127.039306], zoom_start=12, tiles='CartoDB positron')

 

 

 

 

 

 

 

 

 

[ 마커찍기 - folium.Marker([위도, 경도], ... ).add_to(지도) ]

 

 folium.Marker().add_to()를 이용하여 우리가 만든 지도에 마커를 찍을수도 있습니다. 

 

 add_to()의 인수로는 우리가 만든 지도인 folium.Map() 객체를 전달합니다. 

 

 Marker()의 인수로는 [위도, 경도] 이외에도 여러 옵션을 설정하여 마커를 표시할 수 있습니다. 

 

 

- 마커 아이콘 옵션

옵션 설명
[위도, 경도] 마커를 찍을 좌표
popup = "" 마우스 클릭시 표기되는 문구
tooltip = "" 마우스 오버시 표기되는 문구
icon = folium.Icon(color="색상", icon="아이콘 모양") 아이콘의 색상과 모양 지정

 

import folium

myMap = folium.Map(location=[37.4729081, 127.039306], zoom_start=12)

folium.Marker([37.5072384, 127.0238756],
  popup="팝업 문구",
  tooltip="툴팁 문구",
  icon=folium.Icon(color='red', icon='star')).add_to(myMap)

myMap.save('index.html')

 

 

 

 

 

 

 

 

 

[ 반경 원 나타내기 - folium.CircleMarker([위도, 경도], ... ).add_to(지도) ]

 

 해당 위치에 반경 원을 나타내는 마커도 찍을 수 있습니다. 

 

- 반경을 나타내는 원 옵션

옵션 설명
radius = 숫자 반경의 범위
color = "" 선의 색깔
fill_color = "" 채워질 원의 색깔

 

import folium

myMap = folium.Map(location=[37.4729081, 127.039306], zoom_start=12)

folium.Marker([37.5072384, 127.0238756],
  popup="팝업 문구",
  tooltip="툴팁 문구",
  icon=folium.Icon(color='red', icon='star')).add_to(myMap)

folium.CircleMarker([37.5072384, 127.0238756],
  radius=100,
  color='blue',
  fill_color='skyblue').add_to(myMap)

myMap.save('index.html')

 

반응형