카테고리 없음

folium을 이용하여 좌표 정보를 지도 위에 나타내기

뚱뿌 2023. 7. 26. 15:14

지난번 대전광역시 모범음식점 2023년 3월 기준 데이터를 이용하여 주소정보를 좌표계로 변환(지오코딩)하였다.

 

Geocoder API 2.0 레퍼런스를 이용하여 좌표계 추출

지난번, 주소 정보가 포함된 데이터를 활용하여 지오코딩과 역지오코딩을 하였다. 지오코딩(Geocoding), 역지오코딩(Geocoding-reverse) 편 지오코딩(Geocoding) 원하는 주소를 x, y 좌표(위도, 경도)로 변환

danha23.tistory.com

 

이제, 좌표 정보를 지도 위에 나타낼 것이다. 

즉, 공간에 대한 정보를 지도 위에 표현(공간시각화)하는 작업을 진행할 것이다. 

 

이를 위해 사용할 Python 패키지는 folium 이다.

folium
파이썬에서 지도 위에 점을 찍거나, 선을 그리거나, 원을 그리는 등 지도에 원하는 정보를 시각적으로 나타내는 지도 시각화 패키지로 파이썬에서 가장 많이 활용되고 있음

 

먼저, folium 패키지를 불러올 것이다.

지도에서 겹치는 부분들은 동그라미 마커로 표시하여 몇 개의 업소가 있는지를 나타낼 것이다.

이를 위해 folium에서 제공하는 MarkerCluster를 불러올 것이다.

 

먼저, 지도 중심 좌표를 설정한다.

우리는 대전에 대한 주소 정보를 좌표계로 변환한 것이기에 대전 중심으로 설정한다.

위도 36.3504119, 경도 127.3845475

import folium
from folium.plugins import MarkerCluster

# 지도 중심 좌표 설정
lat_c, lon_c = 36.3504119, 127.3845475

m = folium.Map([lat_c, lon_c], zoom_start=12)
marker_cluster = MarkerCluster().add_to(m)

for i in result_df.index:
    
    sub_lat = result_df.loc[i, 'Latitude']
    sub_long = result_df.loc[i, 'Longitude']
    title = result_df.loc[i, '업소명'] + "-" + result_df.loc[i, 'Address']

    folium.Marker([sub_lat, sub_long], 
                  popup = f'<i>{title}</i>', 
                  tooltip = title).add_to(marker_cluster)    
    
m

 

지도 위에 대전광역시 모범음식점들이 나타났다.

가장 눈에 띄는 지역은 주황색 동그라미 마커 100과 112이다.

이는 저 지역에 100개의 업소, 112개의 업소들이 밀집해 있다는 것을 의미한다.

그렇다면,

대전의 중심! 대전시청이 있는 곳에 위치한 업소들을 상세히 확인해 보자.

대전시청이 있는 구역은 주황색 동그라미 100으로 표시된 부분이다.

해당 동그라미에 마우스를 가져다 대면, 아래처럼 영역이 표시된다. 

해당 영역을 클릭하면, 아래처럼 나타나 해당 구역 안에 몇 개의 업소들이 어느 지역에 위치해 있는지를 더 자세히 확인할 수 있다.

아래 이미지에서 빨간색으로 표시한 위치에 해당하는 업소는 1개임을 의미한다.

 

그리고, 위에서 표시한 부분에 마우스 커서를 가져다 대면, 

업소명과 주소 정보를 확인할 수 있다.