🖥️ IT, 컴퓨터/📏 R

[R] 카카오맵 API를 사용해 지오코딩하기 (주소를 경위도로 변환)

김 홍시 2022. 8. 29.
반응형

오늘은 R로 카카오맵 API를 사용해 지오코딩하는 방법을 기록해봅니다.

준비물 : (1) 장소명, 주소가 기록된 csv파일 (2) 카카오맵 API의 개인 KEY (3) RStudio
원하는 결과 : csv파일의 주소 정보를 카카오맵 API 이용해 자동으로 검색해서 그 결과(경위도)를 담은 파일 만들기

준비물 1 : csv 파일

오늘 사용할 데이터는 관악구의 주민센터입니다.
관악구에는 총 21개의 동이 있고, 따라서 동주민센터도 21개가 있어요.

실습용CSV.csv
0.00MB

 

 

 

준비물 2 : 카카오맵 API 등록해 받은 개인 KEY

우리는 카카오맵의 API를 사용해야 하기 때문에 개인 KEY를 받아야 하는데요,
그 과정은 이미 많은 분들이 정리해주셨기 때문에 따로 자세한 설명은 하지 않을게요.
https://developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

 

카카오맵 API 키 받기 등의 키워드로 검색하면 참고할 문서들이 많습니다.

발급을 하면 이와 같이 본인의 KEY가 나옵니다.
저희는 REST API 키를 사용합니다.

R 코드

#지오코딩
library(httr)
library(jsonlite) # fromJSON()
library(dplyr)
library(tidyverse)
place <- read_csv("C:/Users/user/OneDrive - SNU/바탕 화면/실습용CSV.csv")

KAKAO_MAP_API_KEY ="<나의 KEY 입력>"
result = data.frame()
address_list <- place$주소
for(i in 1:nrow(place))
{
  res <- GET(url = 'https://dapi.kakao.com/v2/local/search/address.json', 
             query = list(query = address_list[i]),
             add_headers(Authorization = paste0("KakaoAK ", 
                                                KAKAO_MAP_API_KEY)))
  print(x=res)
  coord <- res %>% content(as = 'text') %>% fromJSON()
  str(object = coord)
  place_list <- res %>% 
    content(as='text') %>% 
    fromJSON()
  
  row_temp = cbind(place_list$documents$road_address %>% 
                     select(address_name, x, y))
  result = rbind(result, row_temp) 
}

print("지오코딩 완료! result를 확인하세요.")

#워킹 디렉토리에 지오코딩 결과물 저장
getwd()
write.csv (result, "geocoding_result.csv", fileEncoding= "euc-kr")

error가 났을 때는 넘어가는 코드를 만들어야 하는데 아직 시간이 잘 안 나네요,,,

R코드 실행

 

결과 확인

result의 표를 눌러서 확인하기

이와 같이 x좌표와 y좌표가 잘 나온 것을 확인할 수 있습니다!

 

 

결과.csv 파일을 열어보니 지오코딩이 잘 완료되었음을 확인할 수 있습니다.

지오코딩 in r / R로 지오코딩하기 / 주소를 경위도로 변환하기 / 주소를 x좌표 y좌표로 변환하기 / 카카오맵 API / API /

 

 

 
 
 
 
 
 
반응형

댓글