Why Not SW CAMP 5기/수업 기록

[1월 4주차-1/24(1)]파이썬 지도 시각화: Folium으로 간단히 배우는 지도 활용

rubii 2025. 1. 24. 11:42

 

 

파이썬의 지도 시각화 라이브러리인 Folium을 활용한 수업을 들으면서, 지도 생성부터 마커 추가, 그리고 다양한 마커 커스터마이징 방법까지 배웠습니다. 이 글에서는 강의 중 정리한 내용을 바탕으로 Folium의 기초 사용법을 공유합니다.


1. Folium 설치 및 환경 설정

Folium은 지도 데이터를 시각화하는 데 유용한 라이브러리입니다. 설치 방법은 간단하며, 주피터 노트북 환경에서 실습하기 적합합니다.

Folium 설치

!pip install folium

좌표 구하기

구글 지도에서 좌표를 구하려면 마커를 우클릭하면 간단히 확인할 수 있습니다.


2. 지도 생성하기

Folium으로 지도 객체를 생성하는 방법은 다음과 같습니다.

import folium as fo

# 좌표 설정 (위도, 경도)
lat1, long1 = 37.52860, 126.93431

# 지도 생성
map_y = fo.Map([lat1, long1], zoom_start=15)
map_y

3. 지도에 마커 추가하기

지도에 특정 위치를 표시하려면 Marker를 사용합니다.

단일 마커 추가

fo.Marker([lat1, long1]).add_to(map_y)

여러 위치에 마커 추가

lat2, long2 = 37.52400, 126.91889
fo.Marker([lat2, long2]).add_to(map_y)

4. 마커에 텍스트 추가하기

마커에 텍스트를 표시할 수 있습니다. 텍스트는 툴팁(tooltip) 또는 팝업(popup) 형태로 나타낼 수 있습니다.

툴팁(tooltip)

fo.Marker([lat1, long1], tooltip='이루비').add_to(map_y)
fo.Marker([lat2, long2], tooltip='사랑해').add_to(map_y)

팝업(popup)

fo.Marker([lat1, long1], popup='rubi').add_to(map_y)
fo.Marker([lat2, long2], popup='사랑해').add_to(map_y)

5. 마커 커스터마이징

마커 색상 변경

fo.Marker([lat1, long1], icon=fo.Icon(color='red')).add_to(map_y)
fo.Marker([lat2, long2], icon=fo.Icon(color='gray')).add_to(map_y)

아이콘 추가

FontAwesome의 아이콘을 사용해 마커를 더 직관적으로 표시할 수 있습니다.

fo.Marker([lat1, long1], icon=fo.Icon(color='red', icon='heart')).add_to(map_y)
fo.Marker([lat2, long2], icon=fo.Icon(color='gray', icon='home')).add_to(map_y)

사용 가능한 아이콘 목록은 FontAwesome 아이콘 리스트에서 확인할 수 있습니다.

fontawesome의 아이콘을 사용할 때에는 prefix='fa' 옵션을 추가해야합니다.

fontawesome의 아이콘을 사용

fo.Marker([lat2, long2], popup="rubi", icon=fo.Icon(color='gray', icon='cloud', prefix='fa')).add_to(map_y)

6. 반복문으로 여러 마커 추가하기

반복문을 사용해 여러 위치에 마커를 효율적으로 추가할 수도 있습니다.

lat = [37.52860, 37.52400, 37.51865]
long = [126.93431, 126.91889, 126.92041]
names = ['여의도 한강공원', '여의도공원', '샛강생태공원']
icons = ['automobile', 'balance-scale', 'ban']
colors = ['red', 'blue', 'purple']

map_y = fo.Map([lat[0], long[0]], zoom_start=14)

for i in range(3):
    fo.Marker([lat[i], long[i]], tooltip=names[i],
              icon=fo.Icon(color=colors[i], icon=icons[i], prefix='fa')).add_to(map_y)

map_y

결과


정리하며

이번 강의를 통해 Folium을 활용한 지도 시각화를 실습하며, 단순히 좌표를 표시하는 것을 넘어 마커를 커스터마이징하고 반복문으로 작업을 자동화하는 등 실질적인 활용 방법을 배웠습니다. 이를 통해 Folium의 강력함과 활용도를 실감할 수 있었으며, 앞으로 데이터 분석 프로젝트에 유용하게 활용할 수 있을 것 같습니다.


활용 아이디어

  • 지역별 데이터 분석 및 시각화
  • 특정 장소의 실시간 데이터(예: 날씨, 교통량) 표시
  • 여행 경로 또는 스토리맵 제작