Feeds:
Posts
Comentários

Posts Tagged ‘georreferenciamento’

Mapas com R e Google

É interessante, por vezes, apontar num mapa a posição de um ou vários objetos. Com o pacote RgoogleMaps é possível fazer isso e ter mapas com look de Google Map, ou seja, mapas de terrenos, estradas, híbridos… Abaixo, vou colocar um exemplo de como fazer isso.

Primeiro, é importante ter as coordenadas (latitude e longitude) do objeto para adiciona-lo no mapa. É aí que entra o pacote dismo. Existe uma função deste pacote que usa o endereço e recupera a latitude e longitude, na verdade, essa função é um wrapper para outra função do RgoogleMaps que usa um API do google para recuperar os dados. Depois disso, o resto é RgoogleMaps puro

# carrega o pacote dismo e RgoogleMaps
 library('dismo')
 library('RgoogleMaps')
 library('XML')

# recupera as coordenadas de um endereço
# Usei o endereço próximo do LEB-USP  e do IB-USP como exemplos (onde eu faço e fiz as pós)
 coordenadas<-geocode(c('Rua Professor Gabriel Silvestre Teixeira de Carvalho, Sao Paulo','Rua do Matao 321, 05508090, Sao Paulo'))

# Organizando os marcadores, aqui tem umas precauções
 mymarkers <-cbind.data.frame( lat= as.vector(t(coordenadas[,'latitude'])), lon= as.vector(t(coordenadas[,'longitude'])), color= c('green','green'), size=c('big','big'),label=c('L','I'))

# Determina o range/tamanho do mapa
 bBox <- qbbox(lat = coordenadas[,'latitude'], lon = coordenadas[,'longitude'])

# finalmente, pegando o mapa
 mapaPlot <- GetMap.bbox(bBox$lonR, bBox$latR, maptype="hybrid", format='jpg', destfile='viva.jpg', markers=mymarkers)

 O resultado é a imagem abaixo, legal, né?

 

Infelizmente, há um limite para o número de marcadores que podemos chamar nas funções getMap(), por conta do ERRO 414, porém o RgoogleMaps permite de plotar centenas de pontos em cima de um mapa, por exemplo, usando a função PlotOnStaticMap().

Read Full Post »