본문 바로가기

기타/python

python folium 지도 데이터 시각화

728x90

오늘은 지도 데이터를 가져올 수 있는 Folium에 대해 알아보도록 하겠습니다.

Javascript라이브러리인 leatlet.js를 이용하여 지도를 시각화하는 라이브러리입니다.

leatlet.js는 모바일 친화적인 지도용 오픈 소스입니다.

pip install folium

사용방법은 간단합니다.

위의 코드로 라이브러리를 다운로드해줍니다.

구글 지도에 접속해 원하는 위치의 위도와 경도를 알아냅니다.

위와 같이 원하는 곳을 검색하고 그곳에서 오른쪽 마우스를 누르면 위도와 경도가 나옵니다.

zoom_start를 통해 얼마나 줌 할지 설정해야 합니다. 1~20까지 가능합니다.

1과 20을 해보도록 하겠습니다.

import folium
L_tower = folium.Map(location=[37.51341513168448, 127.1028902596427], zoom_start=)#(1 OR 20)
L_tower.save('D:/map.html')#저장할 곳의 위치와 파일이름을 넣어주세요

왼쪽에 있는 것이 1이고 오른쪽에 있는 것이 20입니다.

숫자가 클수록 좀 더 줌을 하고 20으로 하면 건물 내부에 있는 업체들 이름까지 나온다는 것을 알 수 있습니다.

 

그다음으로 설정할 것은 배경지도를 선택하는 것입니다.

tiles라는 속성 값인데 OpenStreetMap, Stamen Terrain, StamenToner, Stamen Watercolor, Cartodb Positron, Cartodb dark_matter이 있습니다.

아래 6개 그림은 속성을 순서대로 넣어본 것입니다. 원하는 스타일의 지도를 선택할 수 있습니다.

L_tower = folium.Map(location=[37.51341513168448, 127.1028902596427], zoom_start=10,tiles='타일조건')
L_tower.save('다운로드할 위치+이름.html')

마크나 원을 그릴 수도 있습니다.

import folium
L_tower = folium.Map(location=[37.51341513168448, 127.1028902596427], zoom_start=18,tiles='OpenStreetMap')
folium.Marker([37.51341513168448, 127.1028902596427], popup='롯데타워',
icon=folium.Icon(color='red', icon='info-sign')).add_to(L_tower)
L_tower.save('파일이름과 위치.html')

Icon은 다양한 컬러와 모양을 가지고 있으니 적용해보시기 바랍니다.

python folium marker 사용법입니다.

icon,color,size를 설정할 수 있습니다.

다음은 원을 그려보도록 하겠습니다.

import folium
L_tower = folium.Map(location=[37.51341513168448, 127.1028902596427], zoom_start=18,tiles='OpenStreetMap')
folium.CircleMarker([37.51341513168448, 127.1028902596427], radius=100, color='blue',
fill_color=1, popup='롯데타워').add_to(L_tower)
L_tower.save('파일이름위치.html')

원에도 다양한 스타일이 있으니 찾아서 해보시기 바랍니다.

python-visualization.github.io/folium/

 

Folium — Folium 0.11.0 documentation

folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the leaflet.js library. Manipulate your data in Python, then visualize it in on a Leaflet map via folium. Concepts folium makes it easy to visualize data tha

python-visualization.github.io

 

728x90