πŸ” 데이터 뢄석/04. Data Analysis

[Python] ꡬ글 μ§€μ˜€μ½”λ”©(geocoding)을 ν™œμš©ν•˜μ—¬ 지도에 μ„œμšΈλŒ€ν•™κ΅ μœ„μΉ˜ ν‘œμ‹œ

xod22 2022. 7. 22. 09:24
728x90

2022.04.09 - [데이터 뢄석/04. Data Analysis] - [Python] ꡬ글 μ§€μ˜€μ½”λ”© API ν‚€ μ‰½κ²Œ λ°œκΈ‰λ°›λŠ” 방법

 

[Python] ꡬ글 μ§€μ˜€μ½”λ”© API ν‚€ μ‰½κ²Œ λ°œκΈ‰λ°›λŠ” 방법

ꡬ글 지도 μœ„μ— μ •ν™•ν•œ μœ„μΉ˜μ— 마컀λ₯Ό 찍어 ν‘œμ‹œν•˜κΈ° μœ„ν•΄μ„œλŠ” GPS μ’Œν‘œκ°€ ν•„μš”ν•œλ°μš”..! 일반적인 μ£Όμ†Œ(μš°λ¦¬κ°€ μ‰½κ²Œ 인식할 수 μžˆλŠ” μ£Όμ†Œ 예) μ’…λ‘œκ΅¬) 와 GPS μ’Œν‘œλ₯Ό μ„œλ‘œ λ³€ν™˜ν•˜λŠ” κΈ°λŠ₯을 μ‰½κ²Œ ꡬ

xod22.tistory.com

μ½”λ“œμž‘μ„± 이전에 ꡬ글 μ§€μ˜€μ½”λ”© API λ°œκΈ‰μ€ 이전 글을 μ°Έκ³ ν•΄μ£Όμ„Έμš”!

 


- 데이터

μ„œμšΈμ§€μ—­ λŒ€ν•™κ΅ μœ„μΉ˜.xlsx
0.01MB

 

 

 

1.  νŒ¨ν‚€μ§€ μž„ν¬νŠΈ 및 API μž…λ ₯

import googlemaps
import pandas as pd
my_key="이전글 μ°Έκ³ ν•΄μ„œ λ°œκΈ‰λ°›μ€ APIν‚€ μž…λ ₯"
maps=googlemaps.Client(key=my_key)
lat=[] #μœ„λ„
lng=[] #경도

 

 

2. μ„œμšΈ μ†Œμž¬ λŒ€ν•™κ΅ μœ„μΉ˜μ •λ³΄ μ‹œκ°ν™”

-> Folium라이브러리λ₯Ό 이용

 

*Folium 라이브러리

: 지도λ₯Ό μ‹œκ°ν™”ν•  λ•Œ μœ μš©ν•œ 도ꡬ

세계지도λ₯Ό 기본적으둜 μ§€μ›ν•˜κ³  λ‹€μ–‘ν•œ μŠ€νƒ€μΌμ˜ 지도 이미지λ₯Ό μ œκ³΅ν•¨.

지도λ₯Ό 보렀면 지도 객체λ₯Ό save() ν•¨μˆ˜λ‘œ HTML 파일둜 μ €μž₯ν•œ ν›„, μ›ΉλΈŒλΌμš°μ €λ‘œ μ €μž₯된 HTML νŒŒμΌμ„ μ—΄μ–΄μ„œ 확인해야함

 

 

- νŒ¨ν‚€μ§€ μž„ν¬νŠΈ

import folium
import webbrowser

 

- 데이터 뢈러였기

df=pd.read_excel('μ„œμšΈμ§€μ—­ λŒ€ν•™κ΅ μœ„μΉ˜.xlsx')
df.columns=['collage', 'μœ„λ„', '경도']
df.head()

 

- μ„œμšΈμ§€λ„ 생성

seoul_map=folium.Map(location=[33.55, 126.98], zoom_start=12, tiles='Stamen Terrain')

 

- λŒ€ν•™κ΅ μœ„μΉ˜μ •λ³΄ μ‹œκ°ν™”(CircleMarker)

for name, lat, lng in zip(df.collage, df.μœ„λ„, df.경도):
    folium.CircleMarker([lat, lng], radius=10, color='brown', fill=True, fill_color='coral', fill_opacity=0.3, popup=name).add_to(seoul_map)

 

- 지도λ₯Ό HTML 파일둜 μ €μž₯ ν›„ λΈŒλΌμš°μ €λ‘œ 확인

seoul_collage='seoul_colleges2.html'
seoul_map.save(seoul_collage)

webbrowser.open(seoul_collage)

ν•΄λ‹Ή λ§ˆμ»€μ— 마우슀λ₯Ό μ˜€λ²„ν•˜λ©΄ λŒ€ν•™κ΅λͺ…이 ν‘œμ‹œλœλ‹€!

728x90