[Python] Folium 라이브러리를 이용한 df(위도,경도 데이터) 지도 시각화
Reference: Wooil님의 WGS84 위경도 좌표 기반 데이터 집계 및 시각화하기
import folium
import pandas as pd
# https://www.data.go.kr/
df=pd.read_csv('대전광역시_서구_공공시설개방정보_20220112_1641974993943_6980.csv', encoding='utf-8')
df[['개방시설명','위도','경도']]
개방시설명 | 위도 | 경도 | |
---|---|---|---|
0 | 서구국민체육센터 헬스장 | 36.303779 | 127.362888 |
1 | 관저다목적체육관 | 36.292991 | 127.335205 |
2 | 남선공원종합체육관 스쿼시장 | 36.346230 | 127.397991 |
3 | 남선공원종합체육관 풋살경기장 | 36.346230 | 127.397991 |
4 | 도솔다목적체육관(농구, 배드민턴) | 36.324614 | 127.367889 |
5 | 도솔다목적체육관 헬스장 | 36.324614 | 127.367889 |
6 | 도솔다목적체육관 탁구장 | 36.324614 | 127.367889 |
7 | 서국국민체육센터 수영장 | 36.303779 | 127.362888 |
8 | 오량실내테니스장 | 36.304731 | 127.379732 |
9 | 은평공원테니스장 | 36.359469 | 127.363506 |
10 | 관저테니스장 | 36.292785 | 127.333588 |
11 | 관저체육공원운동장 축구장 | 36.292990 | 127.335204 |
12 | 관저체육공원운동장 농구장 | 36.292990 | 127.335204 |
13 | 관저체육공원운동장 족구장 | 36.292990 | 127.335204 |
14 | 관저체육공원운동장 조깅트랙 | 36.292990 | 127.335204 |
15 | 정림테니스장 | 36.303779 | 127.362888 |
16 | 백운체육관 배드민턴장 | 36.336537 | 127.375247 |
17 | 옥녀봉체육시설 축구장 | 36.331740 | 127.344829 |
18 | 옥녀봉체육시설 X-game장 | 36.331740 | 127.344827 |
19 | 옥녀봉체육시설 풋살경기장 | 36.331740 | 127.344827 |
20 | 옥녀봉체육시설 인공암벽 | 36.331740 | 127.344827 |
21 | 옥녀봉체육시설 배드민턴장 | 36.331740 | 127.344827 |
22 | 도마실국민체육센터 수영장 | 36.312422 | 127.385212 |
23 | 도마실국민체육센터(배드민턴, 탁구) | 36.312422 | 127.385212 |
24 | 남선공원종합체육관 빙상장 | 36.346230 | 127.397991 |
25 | 남선공원종합체육관 헬스장 | 36.346230 | 127.397991 |
26 | 남선공원종합체육관 수영장 | 36.346230 | 127.397991 |
27 | 남선공원종합체육관 골프연습장 | 36.346230 | 127.397991 |
m = folium.Map(location=[df['위도'].mean(), df['경도'].mean()], zoom_start=13)
# 지도 설정; location: 중앙점(위도/경도), zoom_start: 시작 축적
# Layer of Markers
for idx, row in df.iterrows():
lat_ = row['위도']
lon_ = row['경도']
folium.Marker(location=[lat_, lon_],
tooltip=row['개방시설명']).add_to(m)
# Layer of Circle Range of City Hall
location=[36.350554, 127.385092] # 대전 시청 위경도
folium.Marker(location=location,
tooltip='대전 시청').add_to(m)
folium.Circle(radius=1500, # meters
location=location,
color="#ff7800",
fill_color='#ffff00',
fill_opacity=0.2).add_to(m)
m # display map
- Marker, Circle, Rectangle 등의 포인트와 범위를 시각화하여,
- add_t(m) 함수를 통해 레이어를 씌우는 방식으로 이해하였다.
댓글남기기