Folium 라이브러리 사용시 1. 마커 Grouping, 2.마커에 특정 문자열을 삽입, 3. 서클 마커, 4.html 저장을 순서대로 알아보자.
1. 마커 Grouping
마커 그룹생성은 folum.FeatureGroup 함수를 사용해 만들 수 있다. 예제는 상위 그룹 'groups' 에 2개의 하위 그룹(group1, group2)이 존재한다.
folium.LayerControl(collapsed=False).add_to() 함수를 꼭 수행해야 표출 된다.
m = folium.Map(location=[37.502088,127.024615], zoom_start=17)
#그룹 만들기
fg = folium.FeatureGroup(name='groups')
m.add_child(fg)
g1 = plugins.FeatureGroupSubGroup(fg, 'group1')
m.add_child(g1)
g2 = plugins.FeatureGroupSubGroup(fg, 'group2')
m.add_child(g2)
folium.LayerControl(collapsed=False).add_to(m)
#마커 아이콘 커스텀
icon_spinner = plugins.BeautifyIcon(
icon='spinner',#bus,plane,ambulance,taxi,leaf(default)
spin= True,
border_color='#b3334f',
text_color='#b3334f',
# number=10,
# icon_shape='triangle'
icon_shape = 'marker',
)
icon_number = plugins.BeautifyIcon(
border_color='#00ABDC',
text_color='#00ABDC',
icon_shape = 'marker',
# isAlphaNumericIcon = True,
# icon = folium.Icon(color = 'red'),
number=10,
# inner_icon_style='margin-top:0;'
)
#마커 생성
folium.Marker([37.502088,127.024615],
popup='서울1',tooltip='1',
icon=icon_number).add_to(g1)
folium.Marker([37.503088,127.025615],
popup='서울2',tooltip='2',
radius=100,
color='#3186cc',
fill_color='#3186cc',
icon=icon_spinner, draggable= True).add_to(g1)
folium.Marker([37.502088,127.025615],
popup='서울3',tooltip='3',
icon=folium.Icon(color='blue')).add_to(g2)
folium.Marker([37.503088,127.024615],
popup='서울4',tooltip='4',
icon=folium.Icon(color='blue')).add_to(g2)
folium.CircleMarker([37.503088,127.027615],
radius=100,
color='#3186cc',
fill_color='#3186cc',
# popup='덕수궁',
icon=icon_spinner,
draggable = True
).add_to(g2)
m
2.마커에 특정 문자열을 삽입
: 마커에 이미지나 기본 토큰 사용 말고 특정 문자열을 사용하고 싶을땐 plugins.BeautifyIcon 함수를 사용한다. Icon을 마음대로 커스터마이징 가능하다.
관련 코드는 하기와 같다.
icon_number = plugins.BeautifyIcon(
border_color='#00ABDC',
text_color='#00ABDC',
icon_shape = 'marker',
# isAlphaNumericIcon = True,
# icon = folium.Icon(color = 'red'),
number=10,
# inner_icon_style='margin-top:0;'
)
#마커 생성
folium.Marker([37.502088,127.024615],
popup='서울1',tooltip='1',
icon=icon_number).add_to(g1)
3. 서클 마커
서클 마커는 지름 기준으로 원형 표시를 해주지만 folium 에서 마우스 스크롤을 수행하면 해당 화면 비율에 맞추어 서클이 변경된다...
관련 소스코드
folium.CircleMarker([37.503088,127.027615],
radius=100,
color='#3186cc',
fill_color='#3186cc',
# popup='덕수궁',
icon=icon_spinner,
draggable = True
).add_to(g2)
4.html 저장
쉽다.
os.path.join('results',os.path.join('results',Plugins_8.html'))
[마커 종류 참조 링크]
https://github.com/masajid390/BeautifyMarker
<전체 소스코드>
m = folium.Map(location=[37.502088,127.024615], zoom_start=17)
#그룹 만들기
fg = folium.FeatureGroup(name='groups')
m.add_child(fg)
g1 = plugins.FeatureGroupSubGroup(fg, 'group1')
m.add_child(g1)
g2 = plugins.FeatureGroupSubGroup(fg, 'group2')
m.add_child(g2)
folium.LayerControl(collapsed=False).add_to(m)
#마커 아이콘 커스텀
icon_spinner = plugins.BeautifyIcon(
icon='spinner',#bus,plane,ambulance,taxi,leaf(default)
spin= True,
border_color='#b3334f',
text_color='#b3334f',
# number=10,
# icon_shape='triangle'
icon_shape = 'marker',
)
icon_number = plugins.BeautifyIcon(
border_color='#00ABDC',
text_color='#00ABDC',
icon_shape = 'marker',
# isAlphaNumericIcon = True,
# icon = folium.Icon(color = 'red'),
number=10,
# inner_icon_style='margin-top:0;'
)
#마커 생성
folium.Marker([37.502088,127.024615],
popup='서울1',tooltip='1',
icon=icon_number).add_to(g1)
folium.Marker([37.503088,127.025615],
popup='서울2',tooltip='2',
radius=100,
color='#3186cc',
fill_color='#3186cc',
icon=icon_spinner, draggable= True).add_to(g1)
folium.Marker([37.502088,127.025615],
popup='서울3',tooltip='3',
icon=folium.Icon(color='blue')).add_to(g2)
folium.Marker([37.503088,127.024615],
popup='서울4',tooltip='4',
icon=folium.Icon(color='blue')).add_to(g2)
folium.CircleMarker([37.503088,127.027615],
radius=100,
color='#3186cc',
fill_color='#3186cc',
# popup='덕수궁',
icon=icon_spinner,
draggable = True
).add_to(g2)
# m.add_child(folium.ClickForMarker(popup='덕수궁'))
# m.add_child(folium.LatLngPopup())
m.save(os.path.join('results', 'Plugins_8.html'))
m
반응형
사업자 정보 표시
라울앤알바 | 장수호 | 서울특별시 관악구 봉천로 13나길 58-10, 404호(봉천동) | 사업자 등록번호 : 363-72-00290 | TEL : 010-5790-0933 | Mail : shjang@raulnalba.com | 통신판매신고번호 : 2020-서울관악-0892호 | 사이버몰의 이용약관 바로가기
'programmer > python' 카테고리의 다른 글
Telegram API 사용해 보기 (0) | 2022.01.17 |
---|---|
python 크롤링 해보기 (0) | 2021.07.31 |
Jupyter(.ipynb) 실행 파일(.exe) 만들기 (2) | 2021.03.02 |
JVMNotFoundException 처리 (1) | 2020.12.18 |
Conda 설치(linux) (0) | 2020.11.13 |