[R-br] RgoogleMaps e rgdal [RESOLVIDO]

Mauricio Cardeal mcardeal2010 em gmail.com
Quinta Setembro 27 16:20:46 BRT 2012


Elias e Alexandre, fiz uma adaptação das duas rotinas e o resultado foi o
mapa plotado em um arquivo: dados.pgn

### INICIO

library(ggmap)
library(RgoogleMaps)
library(rgdal)

ender <- rbind(c("AVENIDA BRIGADEIRO LUIS ANTONIO, 453", "01317000",
                 "BELA VISTA", "SÃO PAULO", "SP"),
               c("RUA DR. COSTA JÚNIOR, 509", "05002000",
                 "AGUA BRANCA", "SÃO PAULO", "SP"),
               c("AV. DUQUE DE CAXIAS, 193", "01214100",
                 "SANTA IFIGENIA", "SÃO PAULO", "SP"),
               c("RUA MADRE DE DEUS, 427", "03119000",
                 "MOOCA", "SÃO PAULO", "SP"),
               c("RUA CLODOMIRO AMAZONAS, 41", "04537010",
                 "ITAIM BIBI", "SÃO PAULO", "SP"),
               c("RUA LOEFGREEN, 2007", "04040033",
                 "VILA CLEMENTINO", "SÃO PAULO", "SP"),
               c("AV. CELIDONIO NETO, N. 165", "17120000",
                 "CENTRO", "AGUDOS", "SP"),
               c("RUA CAPITÃO MIRANDA 57", "13900030",
                 "CENTRO", "AMPARO", "SP"))
colnames(ender) <- c("endereco", "cep", "bairro", "municipio", "UF")

xy <- apply(ender, 1, function(x) geocode(paste0(x, collapse = ", ")))
coord <- do.call("rbind", xy)
ender2 <- cbind(ender, coord)
ender2

options(OutDec=".")
cad <- subset(ender2,select=c("lat","lon"))
attach(cad,warn.conflicts=F)
cad

cad$size <- "tiny"
cad$col <- "red"
cad$char <- ""

#get the bounding box:
bb <- qbbox(lat = cad[,"lat"], lon = cad[,"lon"])
zoomx <- min(MaxZoom(latrange=bb$latR,lonrange=bb$lonR));
centro = c(mean(bb$latR), mean(bb$lonR));

#download the map:
mapa <- GetMap.bbox(bb$lonR, bb$latR, destfile = "dados.png", GRAYSCALE =F,
markers = cad,
                    center=centro, maptype = "hybrid",zoom=zoomx);

#determine the max zoom, so that all points fit on the plot

plot.new()
PlotOnStaticMap(mapa,lat = cad[,"lat"], lon = cad[,"lon"],
cex=1.5,pch=20,col=c('blue', 'green', 'red'), add=F);

####### FIM

Mauricio
UFBA


Em 26 de setembro de 2012 18:34, Alexandre Santos <
alexandresantosbr em yahoo.com.br> escreveu:

> Obrigado Elias,
>
>        É exatamente este o local, muito didático este recurso.
>
> Redobrados agradecimentos,
>
> Alexandre
>
>
>
>   ------------------------------
> *De:* Elias T. Krainski <eliaskrainski em yahoo.com.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>
> *Enviadas:* Quarta-feira, 26 de Setembro de 2012 13:15
>
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal
>
> Vc não precisa transformar para longlat. Basta informar corretamente qual
> a projeção das suas coordenadas e a função plotGoogleMaps() trata a
> projeção internamente para colocar na mesma do googleMaps. No seu script,
> faltou " " (espaço) na string CRS (antes de cada "+"). Para mim não ocorreu
> erro e visualizei um talhão ao sul do município de Cáceres - MT, a oeste da
> BR-070 (confere?). Veja o script:
>
> x <- c(426588,426593,426825,426829,426588)
> y <- c(8216643,8216681,8216691,8216646,8216643)
>
> ### monta SpatialPointsDataFrame, como nao ha
> ### dados, criado um data.frame com a coluna ID
> require(sp)
> Pontos <- SpatialPointsDataFrame(SpatialPoints(cbind(x,y)),
>   data=data.frame(ID=1:length(x)))
>
> ### assumindo uma particular projecao, e'
> ### necessario verificar se e' mesmo esta
> proj4string(Pontos) <- CRS("+proj=utm +zone=21 +south +datum=WGS84
> +units=m +no_defs")
>
> ### sobrepoe ao google Maps e visualiza
> require(plotGoogleMaps)
> plotGoogleMaps(Pontos)
>
>  Att.
>
> Elias T. Krainski
>
>   ------------------------------
> *De:* Alexandre Santos <alexandresantosbr em yahoo.com.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>; Elias T.
> Krainski <eliaskrainski em yahoo.com.br>
> *Enviadas:* Quarta-feira, 26 de Setembro de 2012 12:57
>
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal
>
> Obrigado pelo help Elias,
>
>        Aquelas coordenadas na Bahia não eram minhas não, apenas peguei o
> post original e estava tentando adaptar para minhas coordenadas que são
> outras, atentei para a projeção, medida (m) e zona (21K) e fiz uma
> transformação para latlong e mesmo assim não deu certo, segue CRM abaixo:
>
> ### coordenadas dos pontos
> x <- c(426588,426593,426825,426829,426588)
> y <- c(8216643,8216681,8216691,8216646,8216643)
> #
> #
> ### monta SpatialPointsDataFrame, como nao ha
> ### dados, criado um data.frame com a coluna ID
> require(sp)
>
> Pontos <-
> SpatialPointsDataFrame(SpatialPoints(cbind(x,y)),data=data.frame(ID=1:length(x)))
>
> proj4string(Pontos) <- CRS('+proj=utm +zone=21+datum=WGS84+units=m+south')
> #### Pontos originalmente em UTM
>
> t_latlong<- spTransform(Pontos, CRS("+proj=longlat +datum=WGS84")) ##
> Transformando para longlat
>
> require(plotGoogleMaps)
> plotGoogleMaps(t_latlong)
> #
>
>   ------------------------------
> *De:* Elias T. Krainski <eliaskrainski em yahoo.com.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>
> *Enviadas:* Quarta-feira, 26 de Setembro de 2012 10:43
>
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal
>
> Isso porque suas coordenadas estão fora do range válido. Para projeção
> UTM, longitude varia entre 174W a 180E e latitude entre 80S a 84N. Seu
> primeiro ponto, por exemplo, (524227, 7978963) sugere isso e sugere também
> que suas coordenadas estão em alguma projeção onde a unidade de distancia é
> em metros, não em graus. Acho melhor você verificar qual é a projeção dos
> seus pontos.
>
> No primeiro post seu sobre este assunto você estava com coordenadas em
> graus e, usando "+proj=longlat +datum=WGS84" não deu esse problema, pois
> visualizei os cinco pontos numa região noroeste da Bahia, a uns 30km da
> divisa com Piaui. Veja o script novamente:
>
> ### coordenadas dos pontos
> x <- c(-43.565,-43.564,-43.563,-43.565,-43.564)
> y <- c(-10.518,-10.466,-10.412,-10.516,-10.474)
>
> ### monta SpatialPointsDataFrame, como nao ha
> ### dados, criado um data.frame com a coluna ID
> require(sp)
> Pontos <- SpatialPointsDataFrame(SpatialPoints(cbind(x,y)),
>   data=data.frame(ID=1:length(x)))
>
> ### assumindo uma particular projecao, e'
> ### necessario verificar se e' mesmo esta
> proj4string(Pontos) <- CRS('+proj=longlat +datum=WGS84')
>
> ### sobrepoe ao google Maps e visualiza
> require(plotGoogleMaps)
> plotGoogleMaps(Pontos)
>
> ### melhores informacoes ver
> vignette("plotGoogleMaps-intro")
>
> Elias T. Krainski
>
>   ------------------------------
> *De:* Alexandre Santos <alexandresantosbr em yahoo.com.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>; Alexandre
> Santos <alexandresantosbr em yahoo.com.br>
> *Enviadas:* Quarta-feira, 26 de Setembro de 2012 11:14
>
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal
>
> Elias,
>
>       O único problema em trabalhar com UTM é que a função plotGoogleMaps()
> não me permite selecionar a zona/setor, então qualquer coordenada que
> coloco o navegador retorna: Sentimos muito, mas não temos imagens daqui.
> Gostaria de encontrar um meio de não ter que transformar as coordenadas
> para latlong,
>
> Obrigado,
>
> Alexandre
>
>
>
>   ------------------------------
> *De:* Alexandre Santos <alexandresantosbr em yahoo.com.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>; Elias T.
> Krainski <eliaskrainski em yahoo.com.br>
> *Enviadas:* Quarta-feira, 26 de Setembro de 2012 9:54
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal [RESOLVIDO]
>
> Obrigado Elias,
>
> Passou despercebido, corrigido:
> ### coordenadas dos pontos
>  x <- c(524227,524268,524268,524227,524227)
>  y <- c(7978963,7978963,7978846,7978846,7978963)
>  #
>  #
>  ### monta SpatialPointsDataFrame, como nao ha
>  ### dados, criado um data.frame com a coluna ID
>  require(sp)
>
>  Pontos <-
> SpatialPointsDataFrame(SpatialPoints(cbind(x,y)),data=data.frame(ID=1:length(x)))
>
> ### assumindo uma particular projecao, e'
> ### necessario verificar se e' mesmo esta
> proj4string(Pontos) <- CRS('+proj=utm +datum=WGS84')
> require(plotGoogleMaps)
> plotGoogleMaps(Pontos)
>
>
>   ------------------------------
> *De:* Elias T. Krainski <eliaskrainski em yahoo.com.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>
> *Enviadas:* Quarta-feira, 26 de Setembro de 2012 8:26
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal
>
> Essas coordenadas não estão em latlong. Coordenadas em latlong são em
> graus e vão de -180 a 180 (longitude) e de -90 a 90 (latitude).
>
> Elias T. Krainski
>
>   ------------------------------
> *De:* ASANTOS <alexandresantosbr em yahoo.com.br>
> *Para:* r-br em listas.c3sl.ufpr.br
> *Enviadas:* Terça-feira, 25 de Setembro de 2012 22:25
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal
>
>  Boa noite pessoal,
>
>         Refazendo o exemplo do Elias em coordenadas UTM, não tive sucesso
> (Erro: Geographical CRS given to non-conformant data). Olhei o datum e
> estava OK e também no manual e não me parece que há nada de errado,
> inclusive o exemplo clássico do meuse do pacote gstat utilizado no exemplo
> do pacote plotGoogleMaps esta em UTM, alguém poderia dar um help, segue CRM
> abaixo
>
>  #
> ### coordenadas dos pontos
>  x <- c(524227,524268,524268,524227,524227)
>  y <- c(7978963,7978963,7978846,7978846,7978963)
>  #
>  #
>  ### monta SpatialPointsDataFrame, como nao ha
>  ### dados, criado um data.frame com a coluna ID
>  require(sp)
> Carregando pacotes exigidos: sp
>  Pontos <- SpatialPointsDataFrame(SpatialPoints(cbind(x,y)),
> +   data=data.frame(ID=1:length(x)))
>
> ### assumindo uma particular projecao, e'
> ### necessario verificar se e' mesmo esta
>  proj4string(Pontos) <- CRS('+proj=longlat +datum=WGS84')
> Erro em `proj4string<-`(`*tmp*`, value = <S4 object of class "CRS">) :
>   Geographical CRS given to non-conformant data:  524268 7978963
>
> require(plotGoogleMaps)
> plotGoogleMaps(Pontos)
> Erro em spTransform(xSP, CRSobj, ...) :
>   No transformation possible from NA reference system
>
>
>
>
> Em 05/09/2012 07:44, Elias T. Krainski escreveu:
>
>  Lamento postar codigo sem teste... Este agora foi testado e funciona.
>
>  ### coordenadas dos pontos
> x <- c(-43.565,-43.564,-43.563,-43.565,-43.564)
> y <- c(-10.518,-10.466,-10.412,-10.516,-10.474)
>
>  ### monta SpatialPointsDataFrame, como nao ha
> ### dados, criado um data.frame com a coluna ID
> require(sp)
> Pontos <- SpatialPointsDataFrame(SpatialPoints(cbind(x,y)),
>   data=data.frame(ID=1:length(x)))
>
>  ### assumindo uma particular projecao, e'
> ### necessario verificar se e' mesmo esta
> proj4string(Pontos) <- CRS('+proj=longlat +datum=WGS84')
>
>  ### sobrepoe ao google Maps e visualiza
> require(plotGoogleMaps)
> plotGoogleMaps(xyd)
>
>  ### melhores informacoes ver
> vignette("plotGoogleMaps-intro")
>
>
> Elias T. Krainski
>
>   ------------------------------
> *De:* Mauro Sznelwar <sznelwar em uol.com.br> <sznelwar em uol.com.br>
> *Para:* Elias T. Krainski <eliaskrainski em yahoo.com.br><eliaskrainski em yahoo.com.br>
> *Enviadas:* Terça-feira, 4 de Setembro de 2012 23:03
> *Assunto:* Re: [R-br] RgoogleMaps e rgdal
>
>  Continua não dando certo:
> Creito que tem um erro no  xy <- SpatialPoints(cbind(xy)) que deveria ser
>  xy <- SpatialPoints(cbind(x,y))
> E mesmo corrigindo veja o acentece:
> > plotGoogleMaps(x,y)
> Erro em function (classes, fdef, mtable)  :
>   unable to find an inherited method for function "spTransform", for
> signature "numeric", "CRS"
> >
>
>
>   Troquei os pacotes. É necessário o pacote plotGoogleMaps. Corrigindo:
>
> y <- c(-43.565,-43.564,-43.563,-43.565,-43.564)
>  x <- c(-10.518,-10.466,-10.412,-10.516,-10.474)
>
>  require(sp)
> xy <- SpatialPoints(cbind(xy))
>
>  require(plotGoogleMaps)
> plotGoogleMaps(xy)
>
> Elias T. Krainski
>
>
>
>
>
>
>
> _______________________________________________
> R-br mailing listR-br em listas.c3sl.ufpr.brhttps://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.
>
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Avenida dos Ramires, s/n
> Caixa Postal 744
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)e-mails:alexandresantosbr em yahoo.com.br
>         alexandre.santos em cas.ifmt.edu.br
> ======================================================================
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>



-- 
Mauricio Cardeal
UFBA
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120927/f7167f0c/attachment-0001.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: dados.png
Tipo: image/png
Tamanho: 778426 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120927/f7167f0c/attachment-0001.png>


Mais detalhes sobre a lista de discussão R-br