위도,경도를 주소로 변환 ggmap package를 이용한 (geocoding and revgeocode in R)
geocode
geocode
함수는 latitude
와 longitude
를 가지고 location으로 변환 하는것을 말한다.
이것은 Google Map
을 이용하게 된다.
Usage
geocode(location, output = c("latlon", "latlona", "more", "all"),
source = c("google", "dsk"), messaging = FALSE, force = ifelse(source ==
"dsk", FALSE, TRUE), sensor = FALSE, override_limit = FALSE,
client = "", signature = "", nameType = c("long", "short"), data)
geocodeQueryCheck(userType = "free")
예제
library(ggmap)
gc <- as.numeric(geocode('Baylor University'))
revgeocode(gc, output = 'more')
revgeocode(gc, output = 'all')
as.numeric(dfLocation[3,])
revgeocode(as.numeric(dfLocation[2:3,]),output = 'more')
revgeocode(latlng,output = 'more')
revgeocode(latlng, ics = 'WGS-84', api = 'google', output = 'address')
data.frame
에 기록된 longitude
와 latitude
를 이용해서 Place
로 변환하는 코드이다.
place <- adply(dfLocation, 1,function(x){
revgeocode(as.numeric(x),output = 'more')
}
)
test code
library(RCurl)
library(RJSONIO)
library(plyr)
url <- function(address, return.call = "json", sensor = "false") {
root <- "http://maps.google.com/maps/api/geocode/"
u <- paste(root, return.call, "?address=", address, "&sensor=", sensor, sep = "")
return(URLencode(u))
}
geoCode <- function(address,verbose=FALSE) {
if(verbose) cat(address,"\n")
u <- url(address)
doc <- getURL(u)
x <- fromJSON(doc,simplify = FALSE)
if(x$status=="OK") {
lat <- x$results[[1]]$geometry$location$lat
lng <- x$results[[1]]$geometry$location$lng
location_type <- x$results[[1]]$geometry$location_type
formatted_address <- x$results[[1]]$formatted_address
return(c(lat, lng, location_type, formatted_address))
Sys.sleep(0.5)
} else {
return(c(NA,NA,NA, NA))
}
}
address <- geoCode("The White House, Washington, DC")
'AI > R Basic' 카테고리의 다른 글
Missing Value (0) | 2016.03.20 |
---|---|
병렬화를 통한 연산 성능 향상 및 성능 측정 방법 (0) | 2016.03.06 |
Do.call() (0) | 2016.02.05 |
날짜 시간 변환 (Date-Time Conversion Function in R) (0) | 2015.12.14 |
JSON in R using jsonlite (0) | 2015.12.12 |