포트폴리오

카카오 API와 openpyxl를 이용한 서울시 무인발급기 지도에 표시하기

2020. 6. 10. 18:06

카카오 API와 openpyxl를 이용한 서울시 무인발급기 위치 확인하기

import openpyxl
import requests
import folium

openpyxl을 이용하여 무인발급기 주소, 발급기명 저장

ex = openpyxl.load_workbook('./2020년04월30일기준_무인민원발급창구_설치장소_및_운영시간(민원24).xlsx')
muin = ex['4월30일']
num = 2
address = []
name = []
while True:
    if '서울' in muin.cell(row=num, column=6).value:
        # 주소 저장
        address_b = muin.cell(row=num, column=6).value
        address_a = address_b.split('(')[0]
        address.append(address_a)
        # 이름 저장
        name_b = muin.cell(row=num, column=3).value
        name.append(name_b)
        num+=1
        continue
    else:
        break
# print(len(address))
# print(len(name))

kakao API를 이용한 위도,경도 얻는 함수 작성

def getLatLng(address):
    app_key = 'KakaoAK ' + '__REST API Key__'
    url = 'https://dapi.kakao.com/v2/local/search/address.json' # endpoint
    params = {
        'query' : address,
        'page' : '',
        'AddressSize' : ''
    }
    headers = {'Authorization' : app_key}
    response = requests.get(url, headers=headers, params=params)
    status_code = response.status_code
    resp = response.json()

    if resp['documents'] != []:
        longitude = resp['documents'][0]['x'] # 경도
        latitude = resp['documents'][0]['y'] # 위도
        return longitude, latitude
    else:
        return (0, 0)
xpoint = []
ypoint = []
for i in address:
    x, y= getLatLng(i)
    xpoint.append(x) # 경도 저장
    ypoint.append(y) # 위도 저장

지도 및 마커 추가

map_list = folium.Map(location=[37.566659527,126.978346859], zoom_start=10)

for item in range(len(address)):
    latitude = float(ypoint[item])
    longtitude = float(xpoint[item])
    # 예외처리 : 서울특별시 용산구 이태원로 22(용산동3가)의 정보 못불러옴
    if latitude == 0:
        continue
    folium.Marker(
        location = [latitude, longtitude],
        popup = name[item],
        icon=folium.Icon(color='red', icon='glyphicon glyphicon-print')
        # icon 적용 할 때 부트스트랩 최신버전을 사용하면 표시안됨. 3버전 이용
    ).add_to(map_list)
map_list
Make this Notebook Trusted to load map: File -> Trust Notebook
서울시 무인발급기 위치 확인 하기.html
1.10MB