API de Georreferenciamento do Google

Bom dia, Estou tentando conhecer um pouco mais do R por meio da publicação "Introdução à análise de dados espacialmente referenciados" do Elias Teixeira Krainski, nela existe uma etapa na qual é possível utilizar uma API do google.maps para fazer o georreferenciamento de endereços, ou seja, obter a latitude e longitude desses endereços o código é o que segue logo abaixo: require(sp) ltipo <- c("av", "rua", NA) lnome <- c("Brasil", "joubert", "prefeitura municipal") enum <- c(3500, 100, NA) fGetLatLonLog <- function(tipo, nome, num, mun, uf, pais) { end <- paste(tipo, nome, num, mun, uf, pais, sep="+") end <- gsub(" ", "+", end, fixed=TRUE) end <- gsub("NA", "", end, fixed=TRUE) end <- gsub("++", "+", end, fixed=TRUE) end <- paste('http://maps.google.com/maps/geo?q= ',end,'&output=csv&sensor=true_or_false&key=abcdefg',sep="") end <- sapply(end, readLines, warn=FALSE) end <- t(sapply(strsplit(end, ","), as.numeric)) colnames(end) <- c("Status", "Acuracia", "Latitude", "Longitude") rownames(end) <- 1:nrow(end) return(as.data.frame(end))} ll=fGetLatLonLog(ltipo, lnome, enum, "Maringa", "PR", "BR") ll Mas quando executo a função aparece o seguinte erro: Error in file(con, "r") : cannot open the connection In addition: Warning message: In file(con, "r") : cannot open: HTTP status was '403 Forbidden' Parece que o Google não permite realizar a conexão... Será que alguém sabe como me ajudar. Hélder Santos *agrohelder@gmail.com <agrohelder@hotmail.com>*

install.packages("ggmap") require(ggmap) ?geocode require(ggmap) ltipo <- c("av", "rua", NA) lnome <- c("Brasil", "joubert", "prefeitura municipal") enum <- c(3500, 100, NA) end <- paste(ltipo, lnome, enum, "Maringa", "PR", "BR", sep=",") geocode(end) Em 13 de fevereiro de 2014 16:01, Helder Gramacho <agrohelder@gmail.com>escreveu:
Bom dia,
Estou tentando conhecer um pouco mais do R por meio da publicação "Introdução à análise de dados espacialmente referenciados" do Elias Teixeira Krainski, nela existe uma etapa na qual é possível utilizar uma API do google.maps para fazer o georreferenciamento de endereços, ou seja, obter a latitude e longitude desses endereços o código é o que segue logo abaixo:
require(sp) ltipo <- c("av", "rua", NA) lnome <- c("Brasil", "joubert", "prefeitura municipal") enum <- c(3500, 100, NA)
fGetLatLonLog <- function(tipo, nome, num, mun, uf, pais) { end <- paste(tipo, nome, num, mun, uf, pais, sep="+") end <- gsub(" ", "+", end, fixed=TRUE) end <- gsub("NA", "", end, fixed=TRUE) end <- gsub("++", "+", end, fixed=TRUE) end <- paste('http://maps.google.com/maps/geo?q= ',end,'&output=csv&sensor=true_or_false&key=abcdefg',sep="") end <- sapply(end, readLines, warn=FALSE) end <- t(sapply(strsplit(end, ","), as.numeric)) colnames(end) <- c("Status", "Acuracia", "Latitude", "Longitude") rownames(end) <- 1:nrow(end) return(as.data.frame(end))}
ll=fGetLatLonLog(ltipo, lnome, enum, "Maringa", "PR", "BR") ll
Mas quando executo a função aparece o seguinte erro:
Error in file(con, "r") : cannot open the connection In addition: Warning message: In file(con, "r") : cannot open: HTTP status was '403 Forbidden'
Parece que o Google não permite realizar a conexão... Será que alguém sabe como me ajudar.
Hélder Santos *agrohelder@gmail.com <agrohelder@hotmail.com>*
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Luís Gustavo Silva e Silva

Caro Luís Gustavo, Muito obrigado, resolvido. Tem mais dois procedimentos que utilizam funções do Google no mesmo tutorial que também apresentam problemas, a primeira é para visualizar dados georreferenciados no google Maps adicionando um layer, ele se refere a um pacote chamado plotGoogleMaps que o R não consegue instalar: require(plotGoogleMaps) dat <- data.frame(Tipo=ltipo, Logradouro=lnome, Numero=enum) llxydf <- SpatialPointsDataFrame(llxy, dat) plotGoogleMaps(llxy) resulta no erro:
require(plotGoogleMaps) Carregando pacotes exigidos: plotGoogleMaps Warning message: In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, : there is no package called 'plotGoogleMaps'
O segundo procedimento é para obter uma imagem do googleMaps e vizualizá-la usando o R: require(RgoogleMaps) cooimg <- GetMap(center=c(9lon9=ll[2,4], 9lat9=ll[2,3]), zoom=16,maptype="roadmap", destfile="marimg.png", format="png32") resulta no seguinte erro: [1] " http://maps.google.com/maps/api/staticmap?center=&zoom=16&size=640x640&mapty... " Error in readChar(con, 5L, useBytes = TRUE) : cannot open the connection In addition: Warning message: In readChar(con, 5L, useBytes = TRUE) : cannot open compressed file 'marimg.png.rda', probable reason 'No such file or directory' Se tiver alguma pista de como resolver agradeço mais uma vez, Hélder Santos *agrohelder@gmail.com <agrohelder@hotmail.com>* Em 13 de fevereiro de 2014 15:05, Luís Gustavo <lgsilvaesilva@gmail.com>escreveu:
install.packages("ggmap") require(ggmap) ?geocode
require(ggmap) ltipo <- c("av", "rua", NA) lnome <- c("Brasil", "joubert", "prefeitura municipal") enum <- c(3500, 100, NA) end <- paste(ltipo, lnome, enum, "Maringa", "PR", "BR", sep=",") geocode(end)
Em 13 de fevereiro de 2014 16:01, Helder Gramacho <agrohelder@gmail.com>escreveu:
Bom dia,
Estou tentando conhecer um pouco mais do R por meio da publicação "Introdução à análise de dados espacialmente referenciados" do Elias Teixeira Krainski, nela existe uma etapa na qual é possível utilizar uma API do google.maps para fazer o georreferenciamento de endereços, ou seja, obter a latitude e longitude desses endereços o código é o que segue logo abaixo:
require(sp) ltipo <- c("av", "rua", NA) lnome <- c("Brasil", "joubert", "prefeitura municipal") enum <- c(3500, 100, NA)
fGetLatLonLog <- function(tipo, nome, num, mun, uf, pais) { end <- paste(tipo, nome, num, mun, uf, pais, sep="+") end <- gsub(" ", "+", end, fixed=TRUE) end <- gsub("NA", "", end, fixed=TRUE) end <- gsub("++", "+", end, fixed=TRUE) end <- paste('http://maps.google.com/maps/geo?q= ',end,'&output=csv&sensor=true_or_false&key=abcdefg',sep="") end <- sapply(end, readLines, warn=FALSE) end <- t(sapply(strsplit(end, ","), as.numeric)) colnames(end) <- c("Status", "Acuracia", "Latitude", "Longitude") rownames(end) <- 1:nrow(end) return(as.data.frame(end))}
ll=fGetLatLonLog(ltipo, lnome, enum, "Maringa", "PR", "BR") ll
Mas quando executo a função aparece o seguinte erro:
Error in file(con, "r") : cannot open the connection In addition: Warning message: In file(con, "r") : cannot open: HTTP status was '403 Forbidden'
Parece que o Google não permite realizar a conexão... Será que alguém sabe como me ajudar.
Hélder Santos *agrohelder@gmail.com <agrohelder@hotmail.com>*
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Luís Gustavo Silva e Silva
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Helder e demais colegas, boa noite! Boa parte dos problemas são decorrentes da atualização das APIs do Google, havendo mudança nos links e parâmetros a utilizar. No primeiro caso é só usar o pacote sugerido, com a ressalva de avaliar as coordenadas retornadas. Algumas podem não corresponder ao que se pretendia obter. Segue exemplo ### <code r> ### instala pacote se ainda não instalado... if (!"ggmap" %in% installed.packages()) {install.packages("ggmap", dep=T)} require(ggmap) locais <- c("Avenida Marcelino Pires, 3600, Dourados, MS", "Av. Marcelino Pires, 5488, Dourados, MS", "Avenida Marcelino Pires, NA, Dourados, MS", "Av. Marcelinho Ozires, 3000, Dourados, MS", "Rua Reinaldo Bianchi, 1650, Dourados, MS", "Rua Nononon Nonon, 2340, Dourados, MS") geocode(locais) ### observar as coordenadas retornadas para locais! ### somente as duas primeira linhas correspondem à posição 'real' dos logradouros ### para obter informação sobre a coordenada use output="more" geocode(locais, output="more") geocode(locais, output="more")[c(1:4,10)] ### principais informações (ver type e loctype) ### </code> No segundo caso, parece que o pacote não foi instalado (usar install.packages() antes de require()). ### <code r> ### instala pacote se ainda não instalado... if (!"plotGoogleMaps" %in% installed.packages()) {install.packages("plotGoogleMaps", dep=T)} require(plotGoogleMaps) ll <- geocode(locais) { dat <- data.frame(ll, locais) coordinates(dat)=~lon+lat proj4string(dat) <- CRS("+proj=longlat +datum=WGS84") } plotGoogleMaps(dat) ### abrirá 'dat.htm' no browser padrão!!! ### </code> No terceiro caso, parece haver erros na linha de comando (cooimg). cooimg <- GetMap(center=c(9lon9=ll[2,4], 9lat9=ll[2,3]), zoom=16,maptype="roadmap", destfile="marimg.png", format="png32") Segue um exemplo reproduzível desdobrado dos exemplos anteriores... ### <code r> ### instala pacote se ainda não instalado... if (!"RgoogleMaps" %in% installed.packages()) {install.packages("RgoogleMaps", dep=T)} require(RgoogleMaps) map <- GetMap(center=c(-22.22258, -54.76349), zoom=6, maptype="roadmap", destfile="tmp.png", format="png32") getwd(); dir(getwd(), pattern=".png$") ### lista arquivos .png salvos! PlotOnStaticMap(map) ### plota figura ### </code> Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]

Olá Éder, boa tarde! Resolvido, muito obrigado mais uma vez! Hélder Santos *agrohelder@gmail.com <agrohelder@hotmail.com>* Em 14 de fevereiro de 2014 20:55, Éder Comunello <comunello.eder@gmail.com>escreveu:
Helder e demais colegas, boa noite!
Boa parte dos problemas são decorrentes da atualização das APIs do Google, havendo mudança nos links e parâmetros a utilizar.
No primeiro caso é só usar o pacote sugerido, com a ressalva de avaliar as coordenadas retornadas. Algumas podem não corresponder ao que se pretendia obter. Segue exemplo
### <code r> ### instala pacote se ainda não instalado... if (!"ggmap" %in% installed.packages()) {install.packages("ggmap", dep=T)} require(ggmap)
locais <- c("Avenida Marcelino Pires, 3600, Dourados, MS", "Av. Marcelino Pires, 5488, Dourados, MS", "Avenida Marcelino Pires, NA, Dourados, MS", "Av. Marcelinho Ozires, 3000, Dourados, MS", "Rua Reinaldo Bianchi, 1650, Dourados, MS", "Rua Nononon Nonon, 2340, Dourados, MS")
geocode(locais) ### observar as coordenadas retornadas para locais! ### somente as duas primeira linhas correspondem à posição 'real' dos logradouros
### para obter informação sobre a coordenada use output="more" geocode(locais, output="more") geocode(locais, output="more")[c(1:4,10)] ### principais informações (ver type e loctype) ### </code>
No segundo caso, parece que o pacote não foi instalado (usar install.packages() antes de require()).
### <code r> ### instala pacote se ainda não instalado... if (!"plotGoogleMaps" %in% installed.packages()) {install.packages("plotGoogleMaps", dep=T)} require(plotGoogleMaps)
ll <- geocode(locais)
{ dat <- data.frame(ll, locais) coordinates(dat)=~lon+lat proj4string(dat) <- CRS("+proj=longlat +datum=WGS84") }
plotGoogleMaps(dat) ### abrirá 'dat.htm' no browser padrão!!! ### </code>
No terceiro caso, parece haver erros na linha de comando (cooimg).
cooimg <- GetMap(center=c(9lon9=ll[2,4], 9lat9=ll[2,3]), zoom=16,maptype="roadmap", destfile="marimg.png", format="png32")
Segue um exemplo reproduzível desdobrado dos exemplos anteriores...
### <code r> ### instala pacote se ainda não instalado... if (!"RgoogleMaps" %in% installed.packages()) {install.packages("RgoogleMaps", dep=T)} require(RgoogleMaps) map <- GetMap(center=c(-22.22258, -54.76349), zoom=6, maptype="roadmap", destfile="tmp.png", format="png32") getwd(); dir(getwd(), pattern=".png$") ### lista arquivos .png salvos!
PlotOnStaticMap(map) ### plota figura ### </code>
Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (3)
-
Helder Gramacho
-
Luís Gustavo
-
Éder Comunello