API 활용 준비
https://developers.kakao.com
카카오 개발자 페이지에서 여러 카카오 제품의 API를 활용할 수 있는데, 그 중에서 좌표와 주소 변환 관련해서는 지도/로컬 제품을 사용하면 됩니다.
REST API 테스트 페이지에서는 어떤 기능을 어떻게 활용할 수 있는지 확인할 수 있습니다. 확인해 볼 기능은 좌표와 주소간 변환이니 아래 이미지의 노란색 2개를 확인해보겠습니다.
주소 -> 좌표 변환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import requests
KAKAO_REST_API_KEY = ''
def convert_address_to_coordinates(address): """ 입력받은 주소를 WGS84 좌표계 좌표로 변환 """
url = 'https://dapi.kakao.com/v2/local/search/address.json?query=' + address header = {'Authorization': 'KakaoAK ' + KAKAO_REST_API_KEY} r = requests.get(url, headers=header) if r.status_code == 200: lng = float(r.json()["documents"][0]["address"]['x']) lat = float(r.json()["documents"][0]["address"]['y']) else: return None return lat, lng
convert_address_to_coordinates("서울특별시 강남구 강남대로 396")
|
좌표가 맞는지 지도에 찍어봤는데, 강남역을 가리키고 있습니다.
좌표 -> 주소 변환
이번에는 좌표에서 주소로 변환해보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| def convert_coordinates_to_address(lat, lng): """ 입력받은 위도, 경도를 도로명, 지번 주소로 변환 """
y, x = str(lat), str(lng) url = 'https://dapi.kakao.com/v2/local/geo/coord2address.json?x={}&y={}'.format(x, y) header = {'Authorization': 'KakaoAK ' + KAKAO_REST_API_KEY} r = requests.get(url, headers=header) if r.status_code == 200: road_address = r.json()["documents"][0]["road_address"]['address_name'] bunji_address = r.json()["documents"][0]["address"]['address_name'] else: return None return road_address, bunji_address
convert_coordinates_to_address(37.4981646510326, 127.028307900881)
|
이전에 강남역 좌표로 얻은 것을 다시 역지오코딩을 했을 때 강남역 주소가 나오는 것을 확인할 수 있습니다.