Retirar coordenadas de cidade do google maps com R

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. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

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") Em 2 de maio de 2012 09:31, Augusto Ribas <ribas.aca@gmail.com> escreveu:
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. Ribas
Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056
participantes (1)
-
Augusto Ribas