Achei uma função no Stackoverflow que resolveu o serviço:
So que ele pede o pacote RCurl, que nao entendi direito mas não tem binario para windows. E precisa de um esquema que não faço a vaga ideia do que faz
para instalar o pacote RCurl.
Mas segue ai caso seja util pra alguem, funcionou blz aqui.
install.packages("RJSONIO")
library(RJSONIO)
source("http://bioconductor.org/biocLite.R")
biocLite("RCurl")
library(RCurl)
construct.geocode.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))
}
gGeoCode <- function(address) {
u <- construct.geocode.url(address)
doc <- getURL(u)
x <- fromJSON(doc,simplify = FALSE)
lat <- x$results[[1]]$geometry$location$lat
lng <- x$results[[1]]$geometry$location$lng
return(c(lat, lng))
}
gGeoCode("Campo Grande MS")
Opa a algum tempo postaram uma função aqui pra calcula a distancia entre cidades pelo googe maps.
Eu gostaria de pegar a coordenada da cidade. Mas eu não acho onde esta essa informação na pagina do google depois que abro ela no R
E também nao sei procurar pra falar a verdade, pq fica gigante depois que le a pagina.
Alguém pode me dar uma luz?
#Função anteriormente postada
distancia <- function(cidade1, uf1, cidade2, uf2){
link <- paste( "http://maps.google.com/maps?saddr=", cidade1, "+-+", uf1, ",+Brasil&daddr=", cidade2, "+-+", uf2, ",+Brasil&hl=pt-BR&ie=UTF8", sep="")
link <- iconv(link, 'latin1', 'UTF-8')
Encoding(link) <- 'bytes'
pagina <- readLines(url(link))
linha <- grep('<div class="altroute-rcol altroute-info"> <span>', pagina)
distancia <- pagina[linha]
distancia <- strsplit(distancia, '<div class="altroute-rcol altroute-info"> <span>')[[1]][2]
distancia <- strsplit(distancia, '</span>')[[1]][1]
return(list(distancia = distancia, link=link))
}
distancia("Dourados", "MS", "Campo.Grande", "MS")
distancia("Brasília", "DF", "Goiânia", "GO")
distancia("Brasília", "DF", "Natal", "RN")
distancia("Brasília", "DF", "Florianópolis", "SC")
distancia("Brasília", "DF", "Porto.Alegre", "RS")
#O que eu gostaria por exemplo para a cidade de Dourados MS
uf1<-c("MS")
cidade1<-c("Dourados")
link<-paste( "http://maps.google.com/maps?saddr=%20",cidade1,"+-+",uf1,",+Brasil&hl=pt-BR&ie=UTF8",sep="")
Encoding(link) <- 'bytes'
pagina <- readLines(url(link))
#é saber onde em pagina esta as coordenadas da cidade.
#que linha olhar, se é que ela esta nessa pagina, e colocar como o resultado acima algo tipo
#coordenadas são tal
--Grato
Augusto C. A. RibasSite Pessoal: http://augustoribas.heliohost.org