GIS

Folium (2): 마커 설정 및 사용자 위치 확인하기

유병혁 2022. 2. 27. 14:25

안녕하세요? 이번 글은 Folium(폴리움)에서 마커를 설정하고 사용자 위치를 확인하는 과정을 정리해 보겠습니다. 이전 글은 아래 링크를 참고하시기 바랍니다.

 

Folium (1): GitHub Pages로 Folium 웹 매핑하기

안녕하세요? 이번 글은 GitHub Pages로 Folium 웹 매핑하는 방법을 정리해 보겠습니다. Folium(폴리움) Python data, leaflet.js maps (Python 데이터, leaflet.js. 맵) Folium — Folium 0.12.1 documentation f..

blog.daum.net

Folium을 호출한 후, 시작 좌표를 지정해 지도를 표출해 봅니다.

import folium
m = folium.Map(location=[37.53319398622274, 126.96437069887519]) # 하이브 인사이트
m

'확대/축소 수준'을 조정해 봅니다. OpenStreetMap은 0부터 20까지 확대/축소 수준이 있습니다.

# 확대/축소 수준
m = folium.Map(location=[37.53319398622274, 126.96437069887519], zoom_start=17)
m

OpenStreetMap의 확대/축소 수준은 다음 링크를 참고하시면 됩니다.

 

Zoom levels - OpenStreetMap Wiki

Variation with latitude of represented distances (in degrees or pixels) on the Mercator projection per actual distances (in meters) on Earth surface. Distances per degree of longitude, for the latitudes marked in the picture. Difference of longitudes Actua

wiki.openstreetmap.org

이번에는 '타일 유형'을 변경해 보겠습니다. 'CartoDB positron'으로 설정해 봤습니다.

# 타일 유형
m = folium.Map(location=[37.53319398622274, 126.96437069887519], zoom_start=12, tiles="CartoDB positron")
m

'folium.Map' 모듈 도움말은 help 함수를 이용하시면 됩니다. 타일 유형은 아래와 같이 확인됩니다.

help(folium.Map)
  • OpenStreetMap
  • Mapbox Bright (무료 타일의 경우 제한된 수준의 확대/축소)
  • Mapbox Control Room (무료 타일의 경우 제한된 수준의 확대/축소)
  • Stamen (Terrain, Toner, and Watercolor)
  • Cloudmade (API key 필요)
  • Mapbox (API key 필요)
  • CartoDB (positron and dark_matter)

이번에는 '마커'를 추가해 보겠습니다. 저는 '하이브 인사이트', '태영 벤치' 2건을 추가해 봤습니다.

# 마커
folium.Marker(
    location=[37.53319398622274, 126.96437069887519],
    popup="하이브 인사이트",
    icon=folium.Icon(color="purple", icon="info-sign"),
).add_to(m)
folium.Marker(
    location=[37.5426610841822, 127.04131697754492],
    popup="태영 벤치",
    icon=folium.Icon(color="purple", icon="cloud"),
).add_to(m)
m

'folium.Icon' 모듈 도움말도 아래와 같이 help 함수를 이용하시면 됩니다. 보다 많은 아이콘을 이용하실 수 있습니다.

help(folium.Icon)

이번에는 사용자 위치를 확인하는 LocateControl 플러그인을 지도에 추가해 보겠습니다!

# 사용자 위치 확인
from folium import plugins
plugins.LocateControl().add_to(m)
m

지도 왼쪽에 아래와 같이 아이콘이 추가됩니다. 해당 아이콘은 'Show me where I am'이라는 툴팁이 소개되며 클릭하면 사용자 위치가 아래와 같이 확인됩니다. 간단하죠?!

현재까지 실습한 내용을 index.html로 추출하고 이전 깃허브에 커밋해 봅니다. 결과는 아래 링크와 같습니다. 해당 웹사이트는 모바일에서도 잘 호환됩니다. 여기까지 Folium에서 마커 설정 및 사용자 위치 확인 과정을 정리해 봤습니다.

 

https://osgeokr.github.io/bangtantour/

 

osgeokr.github.io