이젠 ggmap으로 네이버지도 기반 시각화를 즐기자!

새해 첫 포스팅을 네이버 지도 API 연동 코드가 ggmap 패키지(개발버전)에 통합된 것을 알리는 것으로 시작한다.

제작년(2013) 11월에 ggmap의 구글 API의 오류를 살펴보다가 한국의 PoI(point of interest)가 포함된 네이버 맵 API를 통합하면 어떨까 해서 약 6시간동안 뚝딱 만들어서 pull request를 보냈던 기억이 난다. 그러나 pull request에 대한 어떠한 피드백도 받지 못하고 있다가 22일전 쯤에 ggmap의 제작자로부터 코드 커밋에 대한 커멘트가 올라왔던 것을 오늘 확인했고, 실제 개발 버전을 설치해 테스트를 해보니 잘 동작하는 것을 보고 이렇게 글을 쓴다.

hw

너무 오랜 기다림이고 잊고있었던 상태라 다소 예상치 못한 즐거움을 준것도 사실임…. ㅎㅎ

이 코드가 오늘도 통합이 안되어 있었다면 ggnavermap과 같은 패키지를 만들려고까지 했는데, 그런 코드 브랜치는 만들 필요가 없어져서 매우 다행이라는 생각을 해본다. 다만 네이버의 지도 static API지원이 앞으로도 쾌적하게 지원되기만을 바랄 뿐이다.
그리고 다음 CRAN 릴리즈가 언제가 될지 모르지만 아래와 같이 개발버전을 사용해도 큰 문제는 없다고 생각한다.

앞으로 네이버맵 static API관련 ggmap의 코드 서포트를 해야될거 같아 보이니 현재 ggmap의 구조도 다시 파악해야 될 것 같다.

모두들 네이버 지도 API로 즐거운 지도 시각화가 되길 바란다. 🙂

## devtools::install_github("dkahle/ggmap")
library(ggmap)
library(lubridate)

#한국 지진 데이터
#https://dl.dropboxusercontent.com/u/8686172/eq2.tsv
eq <- read.table('eq2.tsv', sep = "\t", header = T, stringsAsFactors = F)
eq$latitude <- unlist(strsplit(eq$latitude, " "))[seq(from = 1, to = nrow(eq),
    by = 2)]
eq$longitude <- unlist(strsplit(eq$longitude, " "))[seq(from = 1, to = nrow(eq),
    by = 2)]


eq$longitude <- as.double(eq$longitude)
eq$latitude <- as.double(eq$latitude)
eq$year <- as.factor(substr(eq$date, 1, 4))
eq$date <- ymd_hm(eq$date)

cent <- c(126.96136, 37.52962)
bmap <- ggmap(get_navermap(center = cent, level = 4, baselayer = "default",
    overlayers = c("anno_satellite", "traffic"), marker = data.frame(cent[1],
        cent[2]), key = "c75a09166a38196955adee04d3a51bf8", uri = "www.r-project.org"),
    extent = "device", base_layer = ggplot(eq, aes(x = longitude, y = latitude)))

bmap + geom_point(aes(size = power, colour = date), data = eq, alpha = 0.7) +
    geom_density2d()