반응형
오늘은 R로 카카오맵 API를 사용해 지오코딩하는 방법을 기록해봅니다.
준비물 : (1) 장소명, 주소가 기록된 csv파일 (2) 카카오맵 API의 개인 KEY (3) RStudio
원하는 결과 : csv파일의 주소 정보를 카카오맵 API 이용해 자동으로 검색해서 그 결과(경위도)를 담은 파일 만들기
준비물 1 : csv 파일
오늘 사용할 데이터는 관악구의 주민센터입니다.
관악구에는 총 21개의 동이 있고, 따라서 동주민센터도 21개가 있어요.
준비물 2 : 카카오맵 API 등록해 받은 개인 KEY
우리는 카카오맵의 API를 사용해야 하기 때문에 개인 KEY를 받아야 하는데요,
그 과정은 이미 많은 분들이 정리해주셨기 때문에 따로 자세한 설명은 하지 않을게요.
https://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 /
반응형
'🖥️ IT, 컴퓨터 > 📏 R' 카테고리의 다른 글
[R] R로 PPT 파일 손쉽게 만들기 (with Qmd) (0) | 2022.10.12 |
---|---|
[R] 동적 단계구분도 만들기 (서울시 지하층 거주 인구) (1) | 2022.10.03 |
[R] R Studio 꾸미기 (TmThemeEditor사용하여 내가 원하는 색으로 바꾸기) (0) | 2022.08.11 |
[R] R Studio에서 R 파일의 한글이 깨질 때 : 인코딩 reopen, 노트패드 (2) | 2022.08.11 |
[R] 공간데이터 가공하기 (1) : 속성테이블 정제 (0) | 2022.08.02 |
댓글