library(readxl)
stat <- read_excel("F:/work/2019/강의/빅데이터시각화/station_list.xls")
## New names:
## * `` -> ...2
## * `` -> ...3
## * `` -> ...4
## * `` -> ...5
stat <- as.data.frame(stat)
dim(stat)
## [1] 398 5
대기오염 관측소의 위치를 시각화 하기 위해 에어코리아에 접속하여 대기관측소의 위치자료를 다운 받았다.
xls 파일로 자료가 제공되어 readxl 팩키지의 read_excel함수를 통해 자료를 불러왔다.
불러온 자료의 대기오염관측소의 수는 398곳이나 주소가 제공되어 관측소의 위도, 경도의 지리적 정보를 확인할 수 없다.
이 경우 위도 경도를 어떻게 구할 수 있을까?
ggmap 패키지의 get_map()함수와 ggmap()함수를 이용하여 여러 종류의 지도를 불러올 수 있다.
또한 geocode()함수와 mutate_geocode() 함수를 통해 주소의 위도와 경도를 받을 수 있다.
하지만 구글 지도 API를 등록해야 사용할 수 있다.
본 수업시간에는 구글지도 API를 등록하는 방법과 사용하는 방법을 다룬다.
새 프로젝트를 선택한 후 이름을 넣어줍니다. 예) Rvisualization
결재하기
2018년부터 Google은 지도를 이용하는 양에따라 돈을 받고 있어, 카드 결재를 해야만 이용할 수 있습니다.
하지만 매달 $200 free gift가 있으므로 적은 양을 사용하는 사용자에게 불이익은 없습니다.
수업의 편리성을 위해 제 key를 사용하겠습니다.
library(ggmap)
## Loading required package: ggplot2
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
register_google("AIzaSyB_DV5gxNj4NpdwfZL9zJbZL-kySQfg2fc") #다음주까지만 사용 가능합니다.
geocode("대구대학교")
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EB%8C%80%EA%B5%AC%EB%8C%80%ED%95%99%EA%B5%90&key=xxx-kySQfg2fc
## # A tibble: 1 x 2
## lon lat
## <dbl> <dbl>
## 1 129. 35.9
data.frame(geocode(stat$...3[3:10])) # 주소를 위도와 경도로
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B0%95%EB%82%A8%EA%B5%AC+%ED%95%99%EB%8F%99%EB%A1%9C+426+%EA%B0%95%EB%82%A8%EA%B5%AC%EC%B2%AD+%EB%B3%84%EA%B4%80+1%EB%8F%99&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B0%95%EB%8F%99%EA%B5%AC+%EA%B5%AC%EC%B2%9C%EB%A9%B4%EB%A1%9C+42%EA%B8%B8+59+%EC%B2%9C%ED%98%B81%EB%8F%99+%EC%A3%BC%EB%AF%BC%EC%84%BC%ED%84%B0&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B0%95%EB%B6%81%EA%B5%AC+%EC%82%BC%EC%96%91%EB%A1%9C+139%EA%B8%B8+49+%EC%9A%B0%EC%9D%B4%EB%8F%99+%EC%A3%BC%EB%AF%BC%EC%84%BC%ED%84%B0&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B0%95%EC%84%9C%EA%B5%AC+%EA%B0%95%EC%84%9C%EB%A1%9C+45+%EB%8B%A4%EA%B8%B8+71+%ED%99%94%EA%B3%A13%EB%8F%99+%ED%91%B8%EB%A5%B8%EB%93%A4%EC%B2%AD%EC%86%8C%EB%85%84%EB%8F%84%EC%84%9C%EA%B4%80&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B4%80%EC%95%85%EA%B5%AC+%EC%8B%A0%EB%A6%BC%EB%8F%99%EA%B8%B8+14+%EC%8B%A0%EB%A6%BC%EB%8F%99+%EC%A3%BC%EB%AF%BC%EC%84%BC%ED%84%B0&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B4%91%EC%A7%84%EA%B5%AC+%EA%B4%91%EB%82%98%EB%A3%A8%EB%A1%9C+571+%EA%B5%AC%EC%9D%98%EC%95%84%EB%A6%AC%EC%A0%95%EC%88%98%EC%84%BC%ED%84%B0&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B5%AC%EB%A1%9C%EA%B5%AC+%EA%B0%80%EB%A7%88%EC%82%B0%EB%A1%9C+27%EA%B8%B8+45+%EA%B5%AC%EB%A1%9C%EA%B3%A0%EB%93%B1%ED%95%99%EA%B5%90&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EC%84%9C%EC%9A%B8+%EA%B8%88%EC%B2%9C%EA%B5%AC+%EA%B8%88%ED%95%98%EB%A1%9C21%EA%B8%B8+20+%EC%8B%9C%ED%9D%A55%EB%8F%99+%EC%A3%BC%EB%AF%BC%EC%84%BC%ED%84%B0&key=xxx-kySQfg2fc
## lon lat
## 1 127.0480 37.51754
## 2 127.1368 37.54498
## 3 127.0119 37.64789
## 4 126.8354 37.54458
## 5 126.9271 37.48735
## 6 127.0925 37.54718
## 7 126.8901 37.49826
## 8 126.9083 37.45235
DU <- get_map(location="대구대학교",
zoom=14,
maptype="roadmap",
source="google")
## Source : https://maps.googleapis.com/maps/api/staticmap?center=%EB%8C%80%EA%B5%AC%EB%8C%80%ED%95%99%EA%B5%90&zoom=14&size=640x640&scale=2&maptype=roadmap&language=en-EN&key=xxx-kySQfg2fc
## Source : https://maps.googleapis.com/maps/api/geocode/json?address=%EB%8C%80%EA%B5%AC%EB%8C%80%ED%95%99%EA%B5%90&key=xxx-kySQfg2fc
ggmap(DU)
ggmap(DU) + geom_point(aes(x=128.85, y=35.901), color="blue", size=15)
위의 내용을 참고하여 아래 과제를 수행하세요.
경상북도 대학목록의 대학과 전문대학의 위도와 경도를 생성하세요.
google 지도를 다운 받아, 대학과 전문대학의 위치를 지도위에 시각화 하세요.(전문대학과 대학의 색을 다르게 하세요)
stat_density_2d를 이용하여 학교의 밀도를 지도에 표시하세요.