본문 바로가기
문송충의 코딩하기/파이썬 데이터 분석

Folium으로 회사 주변 GS25 위치 지도로 표시#2

by 동장군님 2020. 7. 8.
728x90

이번 프로젝트는 별거 없다.

 

Folium이라는 패키지와 Kakao 지도 API를 통해 아래 첨부 이미지처럼 내 회사 위치인 합정 근처에 GS25가 어디에 있는지 지도로 표시하고자 한다.

 

 

이번 분석? 분석이라고 하기도 좀 그렇지만 필요한 것은 다 알겠지만 우선 pip install folium으로 패키지를 우선 임포트해야되며, 또한 kakao 지도 api를 사용할 예정이라 아래 링크에 들어가서 가입해야 된다

https://developers.kakao.com/

그러면 계정에 API 값이 발급되는데 그걸 사용할 것이다.

어려운거 하나도 없다. 아래 작성한 코드만 봐도 굉장히 간단하다!

 

import requests
import folium
import pandas as pd

#카카오 지도에서 검색하고자하는 위치 키워드
searching = '합정 GS25'

url = 'https://dapi.kakao.com/v2/local/search/keyword.json?query={}'.format(searching)
headers = {
    "Authorization": "KakaoAK 여기에 Kakao api 추가"
}
#json 형태로 데이터가 주어진다
places = requests.get(url, headers = headers).json()['documents']

#우리가 필요한 위도/경도/GS25 지점이름 데이타를 가져오고 Dataframe 형태로 변환
lat=[]
lon=[]
name=[]
for i in places:
    lat.append(i['y'])
    lon.append(i['x'])
    name.append(i['place_name'])
add=pd.DataFrame()
add['lat']=lat
add['lon']=lon
add['name']=name

#위도/경도 데이타 타입이 문자열이라 float으로 변환
add['lat']=add['lat'].apply(lambda x: float(x))
add['lon']=add['lon'].apply(lambda x: float(x))

#folium 패키지로 카카오API에서 받아온 GS25 위도 경도 위치를 표시한다
#지도를 어디 중심으로 표시할지를 설정해줘야되는데 여기서는 카카오에서 받아온 1번째 GS25 지점을 기준으로 설정
map = folium.Map(location=[add['lat'][0],add['lon'][0]], zoom_start=15)
for index, row in add.iterrows():
    folium.Marker(location=[row['lat'],row['lon']], popup=row['name'], icon=folium.Icon(color='red')).add_to(map)

#folium 지도 파일 저장
map.save('gs25.html')

성의없는 코딩 끝

 

 

728x90
반응형

댓글