[R Studio] 지도 그리기 / 지리공간정보시스템(GIS) (feat. ggmap)
R Studio를 이용하면 통계분석뿐만 아니라 지도를 그리고, 그 지도에 색도 칠하고 선도 그을 수 있습니다.
이런 지도에 색칠하고 선을 그어서 정보를 표시하는 것을 지리공간정보시스템(GIS)라고 부릅니다.
GIS 전용 소프트웨어들도 있지만, R Studio를 이용해서도 간단한 작업은 가능합니다.
'ggmap' 패키지를 이용해주면 됩니다.
이제부터, R Studio를 이용해 지도를 그려보겠습니다.
install.packages("ggplot2")
install.packages("ggmap")
을 입력하여 ggplot2와 ggmap 패키지를 설치합니다.
ggmap은 구글맵과 연동을 위해서, ggplot2는 구글맵에 그래프를 표시하기 위해 필요합니다.
library(ggmap)
을 입력하여 패키지들을 불러옵니다. ggmap을 불러오면, ggplot2도 자동적으로 불러와집니다.
ggmap 패키지 2.7.0 버전부터는 구글 맵에서 API Key를 미리 발급받은 다음 패키지의 함수를 실행하기 전에 API Key를 등록해야 함수를 실행시킬 수 있습니다.
그냥 ggmap을 실행해보면 다음과 같이
Error : Google now requires an API key.
See ?register_google for details.
라는 에러가 뜹니다. 이를 해결해보겠습니다.
먼저, 구글 계정에 로그인한 상태로 다음의 구글 지도 플랫폼 사이트에 접속합니다.
https://mapsplatform.google.com/
Google Maps Platform - Location and Mapping Solutions
Create real world and real time experiences for your customers with dynamic maps, routes & places APIs from Google Maps Platform’s location solutions.
mapsplatform.google.com
get started 버튼을 눌러주세요.
다음과 같이 계정 정보를 입력하는 창이 나타납니다.
순서대로 선택하고, 체크 박스에 체크한 다음 계속 버튼을 눌러줍니다.
2단계는 전화번호를 입력하는 것입니다. 입력하고 보안문자를 받아 전화번호를 인증해줍니다.
3단계는 주소 및 카드 결제 정보 입력입니다. 90일 동안 무료로 사용할 수 있고, 그 이후에도 자동결제를 신청하지 않으면 결제가 자동으로 되진 않습니다.
다음과 같은 화면이 나타나면 이제 다 와갑니다.
확인을 누르고 설문 조사도 완료하면 API Key가 뜹니다. API Key를 복사한 다음, 데모빌드 버튼을 눌러줍니다.
혹시 복사를 못하셨다면, API Key는 사용자 인증정보 칸에서 다시 찾을 수 있습니다.
usethis 패키지를 이용합니다.
먼저, usethis 패키지를 설치하고 불러와줍니다.
install.package("usethis")
library(usethis)
를 입력합니다.
usethis::edit_r_environ()
을 입력해줍니다.
그러면 다음과 같이 스크립트창에 '.Renviron'이 생성됩니다.
이 Renvirion 창에 다음과 같이 입력해줍니다.
GOOGLE_MAP_KEY = '복사한 API Key'
그 다음, '.Renviron' 파일을 저장하고 R Studio를 종료 후에 다시 켜줍니다. 그리고 콘솔창에
Sys.getenv('GOOGLE_MAP_KEY')
를 입력했을 때 API Key가 나오면 API Key가 정상적으로 추가된 것입니다.
이제 ggmap 패키지를 사용하기 전에 구글 맵 API Key를 등록합니다.
우선, ggmap 패키지를 다시 불러옵니다.
library(ggmap)
그 다음,
register_google(key = Sys.getenv('GOOGLE_MAP_KEY'))
를 입력해줍니다.
실행했을 때 아래와 같이 아무것도 안나오면 정상적으로 API Key가 등록되신 겁니다.
앞으로 ggmap을 사용하기 전에는 항상 register_google(key = Sys.getenv('GOOGLE_MAP_KEY')) 을 실행하여 키를 등록해주세요!
ggmap 패키지를 불러온 다음에 다음과 같이 입력해줍니다.
ggmap(get_map(location = 'south korea', zoom = 5)
그러면 다음과 같은 지도가 나타납니다.
ggmap(get_map(location = 'south korea', zoom = 숫자)에서 숫자 부분을 바꿔주면 지도가 확대/축소됩니다.
7을 입력해보면 다음과 같이 확대되어 나타납니다. 숫자 부분은 3부터 21까지 입력 가능합니다.