🖥️ IT, 컴퓨터/🐍 Python

[Python] 경위도 좌표로 지도 나타내기 with Folium

김 홍시 2023. 4. 13.
반응형

Python에서 Folium 라이브러리를 사용하여 경도와 위도 좌표를 이용하여 지도를 생성하는 방법은 다음과 같습니다.

  1. 필요한 라이브러리를 가져옵니다:
  2. import folium import pandas as pd
  3. CSV 파일을 pandas DataFrame으로 로드합니다:your_file.csv 부분을 실제 CSV 파일의 경로로 대체해야 합니다.
  4. data = pd.read_csv('your_file.csv')
  5. Folium을 사용하여 기본 지도를 생성합니다. 특정 위도와 경도를 중심으로 설정합니다:위도경도를 원하는 지도 중심점 좌표로 대체해야 합니다.
  6. map = folium.Map(location=[위도, 경도], zoom_start=10)
  7. DataFrame의 각 행을 반복하며 지도에 마커를 추가합니다:'위도', '경도', '이름'을 CSV 파일의 해당 열 이름으로 대체하거나 열 이름에 맞게 코드를 조정해야 합니다.
  8. for index, row in data.iterrows(): folium.Marker([row['위도'], row['경도']], popup=row['이름']).add_to(map)
  9. 지도를 HTML 파일로 저장합니다:
  10. map.save('map.html')

이제 Python 스크립트를 실행하면 map.html이라는 HTML 파일이 생성됩니다. 웹 브라우저에서 이 파일을 열어서 지도를 확인할 수 있습니다. 지도의 마커는 CSV 파일에서 가져온 경도와 위도 좌표에 해당하며, 팝업에는 관련 정보가 표시됩니다.

참고: 코드를 실행하기 전에 Python 환경에 Folium 라이브러리가 설치되어 있는지 확인해야 합니다. 필요한 경우 pip install folium을 사용하여 설치할 수 있습니다.

 

준비물

 

 

최종 코드

 

import folium
import pandas as pd


# CSV 파일 읽어오기
df = pd.read_csv('지오코딩완료.csv', encoding = "utf-8")

# 지도 생성
m = folium.Map(location=[37.5,127], zoom_start=8)

# FeatureGroup 객체 생성
fg = folium.FeatureGroup(name='Data')

# Marker 객체와 Popup 객체 생성
# 마커 클릭 시 trip열과 name열의 내용을 보여주는 popup이 뜨도록 구현
for index, row in df.iterrows():
    marker = folium.Marker(location=[row['latitude'], row['longitude']])
    popup = folium.Popup(f'<p><strong>{row["trip"]}</strong></p><p>{row["name"]}</p>', max_width = 500)
    marker.add_child(popup)
    fg.add_child(marker)

# FeatureGroup 객체를 지도에 추가
m.add_child(fg)

# LayerControl 객체 생성
folium.LayerControl().add_to(m)

# 지도를 HTML 파일로 저장
m.save('data_map.html')

 

반응형

댓글