Primeiro precisamos abrir algumas bibliotecas
library(maps)
library(mapdata)
library(maptools)
## Loading required package: foreign
## Loading required package: sp
## Loading required package: lattice
## Checking rgeos availability: TRUE
library(RgoogleMaps)
## Loading required package: png
## Attaching package: 'RgoogleMaps'
## The following object(s) are masked from 'package:sp':
##
## degAxis
Agora estamos prontos para o nosso primeiro mapa
map("worldHires", "Brazil", col = "lightgray", fill = TRUE)
É possível modificar o mapa, plotar coordenadas, etc. Como exemplo, vamos plotar as distribuições de duas espécies de aves: Formicivora serrana e F. littoralis. Primeiro vamos plotar um mapa mais restrito, depois plotar a distribuição destas espécies.
map("worldHires", "Brazil", col = "lightgray", fill = TRUE, xlim = c(-50, -36),
ylim = c(-25, -15))
F_serrana <- readShapePoly(“form_serr_pl.shp”)
F_littoralis <- readShapePoly(“form_litt_pl.shp”)
estados <- readShapePoly(“BRASIL.shp”)
plot(estados, add=TRUE)
plot(F_serrana, add=TRUE, col=“green”)
plot(F_littoralis, add=TRUE, col=“red”)
box()
xlim e ylim são os limites de latitude e longitude, respectivamente. Note que, pra facilitar a visualização, eu inclui shapes dos estados brasileiros. Você pode encontrar estes arquivos no site [http://www.gismaps.com.br/divpol/divpol.htm]
Há vários bancos de dados de distribuições geográficas de diversos organismos, por exemplo:
[http://www.natureserve.org/getData/animalData.jsp]
[http://www.iucnredlist.org/technical-documents/spatial-data]
É possível usar o Google maps para conseguir mapas muito interessantes visualmente, de acordo com o interesse.
center = c(-25.2, -48.8) #centro do mapa
zoom <- 5 #zoom do mapa. Varia de 1 (todo o mundo) e numeros maiores (mais zoom)
mapa.sul <- GetMap(center = center, zoom = zoom, maptype = "satellite", destfile = "mapa_sul.png")
## [1] "http://maps.google.com/maps/api/staticmap?center=-25.2,-48.8&zoom=5&size=640x640&maptype=satellite&format=png32&sensor=true"
O arquivo com o mapa é salvo no diretório de trabalho. Além disso, o mesmo mapa pode ser obtido colando o endereço em algum browser. Há outros tipos de mapas possíveis. Troque “terrain” por “roadmap”, “mobile”, “satellite”, “terrain”, “hybrid”, “mapmaker-roadmap” ou “mapmaker-hybrid” para outras opções.
Agora vamos tentar plotar alguns pontos no mapa.
lat <- c(-25.134722, -25.246389, -25.61, -25.149722) #latitudes
lon <- c(-48.820833, -48.835556, -48.855278, -48.838056) #longitudes
size <- c("small", "small", "small", "small") #cria uma coluna com o tamanho do marcador
col <- c("red", "red", "red", "red") #cria uma coluna com a cor do marcador
char <- c("", "", "", "") #desenha o tipo normal de pinpoints do Google Maps
meuspontos <- cbind.data.frame(lat, lon, size, col, char) #juntando tudo
meumapa <- GetMap.bbox(lonR = range(lon), latR = range(lat), center = c(mean(lat),
mean(lon)), destfile = "meumapa.png", markers = meuspontos, zoom = 10, maptype = "terrain")
## [1] "http://maps.google.com/maps/api/staticmap?center=-25.28520825,-48.83743075&zoom=10&size=640x640&maptype=terrain&format=png32&sensor=true&markers=size:small|col:red|char:|-25.13,-48.82|size:small|col:red|char:|-25.25,-48.84|size:small|col:red|char:|-25.61,-48.86|size:small|col:red|char:|-25.15,-48.84"
Note que mapas bem aproximados tem uma qualidade excelente. Por exemplo:
lat <- c(-25.134722, -25.149722) #latitudes
lon <- c(-48.820833, -48.838056) #longitudes
size <- c("small", "small") #cria uma coluna com o tamanho do marcador
col <- c("red", "red") #cria uma coluna com a cor do marcador
char <- c("", "") #desenha o tipo normal de pinpoints do Google Maps
meuspontos <- cbind.data.frame(lat, lon, size, col, char) #juntando tudo
meumapa <- GetMap.bbox(lonR = range(lon), latR = range(lat), center = c(mean(lat),
mean(lon)), destfile = "meumapa.png", markers = meuspontos, zoom = 15, maptype = "terrain")
## [1] "http://maps.google.com/maps/api/staticmap?center=-25.142222,-48.8294445&zoom=15&size=640x640&maptype=terrain&format=png32&sensor=true&markers=size:small|col:red|char:|-25.13,-48.82|size:small|col:red|char:|-25.15,-48.84"
Aqui estão outras bibliotecas que podem ser úteis:
library(sp) #classes e métodos para dados espaciais
library(maptools) #ferramentas para ler e manipular objetos espaciais
library(maps) #criar mapas geográficos
library(mapdata) #contém dados básicos para serem utilizados com “maps”, como topografia e geologia
library(mapproj) #criando mapas com outras projeções
library(raster) #ferramentas para lidar com raster maps