Creative Code

folium을 사용해 지도에 마커추가, 행정구역 구분하기 본문

코딩 study/python

folium을 사용해 지도에 마커추가, 행정구역 구분하기

빛하루 2023. 10. 29. 00:08
# Folium 라이브러리를 가져옵니다
import folium

# Folium 지도 객체를 생성합니다. 시작 위치와 줌 레벨, 타일 스타일을 지정합니다.
m = folium.Map([52.0210802, 0.2312701], zoom_start=15, tiles='cartodb positron')
print(m)

# 지도를 HTML 파일로 저장합니다
m.save('map.html')

# 새로운 지도를 생성하고 아이콘을 설정합니다
m = folium.Map([52.0210802, 0.2312701], zoom_start=15)
icon = folium.Icon(color='red', icon_color='white', icon='tower', angle=0)

# 마커를 생성하고 툴팁 및 팝업을 추가합니다
folium.Marker([52.0210802, 0.2312701], tooltip='<b>Click me!!</b><br>툴팁사용', popup='<b>눌러주세요</b><br>팝업사용', icon=icon).add_to(m)
print(m)

# 복권 판매점 정보를 리스트로 저장합니다
lotto = [
    {"store": "담배", "loc": [37.62585944357624, 127.01847823823798]},
    {"store": "화곡본마트", "loc": [37.54248103738589, 126.84414659211494]},
    {"store": "용꿈돼지꿈", "loc": [37.5447438346992, 126.95223862043447]},
    {"store": "일이오마켓", "loc": [37.47943673430032, 126.98346178441342]},
    # ... 다른 판매점 정보 ...
    {"store": "탑로또", "loc": [34.87844231008963, 128.62803523643754]}
]

# MarkerCluster를 사용하여 복권 판매점 정보를 지도에 표시합니다
from folium.plugins import MarkerCluster
m = folium.Map([36.6108968, 127.2864676], zoom_start=6)
cluster = MarkerCluster().add_to(m)

for i in range(0, len(lotto)):
    # 각 판매점에 마커를 추가하고 툴팁 및 팝업을 설정합니다
    folium.Marker([lotto[i]['loc'][0], lotto[i]['loc'][1]], tooltip=lotto[i]['store'],
                  popup='<b>눌러주세요</b><br>팝업사용', icon=folium.Icon(icon='ok')).add_to(cluster)
print(m)

# GeoJSON 데이터를 지도에 추가합니다
import json
m = folium.Map([36.6108968, 127.286476], zoom_start=6)

# GeoJSON 파일을 읽어와 JSON 데이터로 파싱합니다
jsonfile = open('data/HangJeongDong_ver20230101.geojson', 'r', encoding='utf8').read()
jsondata = json.loads(jsonfile)

# GeoJSON 데이터를 지도에 추가합니다
folium.GeoJson(jsondata).add_to(m)
print(m)