230525 목
💡 영등포구 위경도 좌표를 활용하여 주소 변환
영등포구의 흡연시설은 위도, 경도는 존재하지만 주소컬럼은 존재하지 않는다.
위경도→주소 변환 하고 싶을 때 사용한 코드(역지오코딩)
- 참고한 블로그 : https://parkgihyeon.github.io/
카카오맵API를 검색하면, https://apis.map.kakao.com/web/guide/ 해당 사이트가 나오고, 이 사이트는 자바스크립트 API이므로 파이썬 코드를 사용하는 나로서는 이해하기가 쉽지 않다. 파이썬 코드들은 아래 주소의 로컬 > REST API 페이지를 보는게 이해에 도움이 된다. 카카오 developers의 로컬 > REST API 를 사용해서, 주소 검색, 좌표로 주소 변환, 좌표계 변환 등을 할 수 있다.(스크린샷의 우측 목차 참고)
https://developers.kakao.com/docs/latest/ko/local/dev-guide
위경도 좌표로 주소를 불러오는 코드를 작성했음에도, 제대로 변환이 안되는 경우가 있다. 그럴 때는 results가 어떻게 나오는지 출력을 해본다. results[0] 부분이 주소 정보에 해당하고, 그 중 불러오고 싶은 정보를 찾아서 코드를 수정해줄 필요가 있다.
현재 경우에는 주소를 불러오고 싶을 때 주소가 할당 된 results[0]의 ['address']의 ['address_name']을 가져오게 설정했지만, 결과값과 가져오고 싶은 값에 따라서 results[0]['road_address']['address_name'] 등 변경이 필요할 때가 있다.
# 위경도 좌표로 주소 매칭하는 함수
def GetAddress(lng, lat):
url = "https://dapi.kakao.com/v2/local/geo/coord2address.json?x="+lng+"&y="+lat
headers = {"Authorization": 'KakaoAK ###write your key###'}
results = requests.get(url, headers=headers).json()['documents']
address = results[0]
name = address['address']['address_name']
return name
참고) 주소→위경도 변환 하고 싶을 때 사용한 코드(지오코딩)
# 위경도 매칭 함수
def GetLatLng(address):
url = "https://dapi.kakao.com/v2/local/search/address.json?query={}".format(address) #요청할 url 주소
headers = {"Authorization": 'KakaoAK ###write your key###'} #REST API 키(유효한 키)
results = requests.get(url,
headers=headers).json()['documents'] #카카오 API 요청
result = results[0]
name = result['address_name']
x = result['x'] # Lng, 경도
y = result['y'] # Lat, 위도
data = [name, x, y, address]
return data
댓글