Mapas en R con RgoogleMaps

Los mapas con el paquete RgoogleMaps se obtienen descargando los mapas desde Google Maps valga la redundancia-, lo bueno es la interface gráfica con que se pueden presentar los mapas incluyendo las calles, centros de atracción, etc. Además la sintaxis para obtener el mapa es sencilla y pueden agregar objetos en la ubicación deseada según su latitud y longitud. El mapa obtenido seria de la siguiente manera:

El código en R se muestra a continuación:

#install.packages("rgdal")
#install.packages("geomapdata")
#install.packages("sp")
install.packages("RgoogleMaps")
library("RgoogleMaps")

#Lima
# GetMap es para descargar el mapa y PlotOnStaticMap es para mostrar el mapa
#El Zoom va de 0 a 19
#Para ver latitud y longitud de Lima http://www.tutiempo.net/Tierra/Peru/Lima-PE035311.html
PlotOnStaticMap(GetMap(center=c(-12.05,-77.05), zoom =13, destfile = "Lima.png",
       maptype = "mobile"), axes = TRUE)
# si desean una imagen satelital
PlotOnStaticMap(GetMap(center=c(-12.05,-77.05), zoom =13, destfile = "Limasatelital.png",
       maptype = "satellite"), axes = TRUE)

# Para agregar texto al mapa puede hacer lo siguiente:
#Leer mapa
MyMap=GetMap(center=c(-12.02,-77.05), zoom =13, destfile = "LimaUNI.png",
       maptype = "mobile")
#Agregar texto al mapa
png(file="Mapa%02d.png", width=1000, height=1000)
TextOnStaticMap(MyMap, lat=c(-12.02+0.02*runif(1),-12.02+0.02*runif(1)),lon=c(-77.05+0.02*runif(1),-77.05+0.02*runif(1)), c("Ingeniería","Estadística"), cex=2, col = 'red')
dev.off()

Mapas en el paquete de “Métodos para datos espaciales” (sp) en R

Para trabajar con este paquete podemos descargar la información georeferenciada de http://gadm.org/ de cualquier país, lo malo es que a mayor nivel de detalle tal como distritos existen discrepancias con la realidad. De todas maneras este paquete resulta interesante y útil a la hora de trabajar con datos georeferenciados y mucho más si son datos propios. A continuación se muestra un código para obtener el mapa de Lima por provincias directo desde el Software R.

library(sp)
peru <- readRDS("PER_adm2.rds")
# Para descargar el mapa http://gadm.org/country
# En la misma página también se puede descargar para departamentos y provincias
# solo se cambia PER_adm2.RData por PER_adm0.RData,PER_adm1.RData o PER_adm3.RData
names(peru)
# Hasta ahora el mapa y sus características están cargados en gadm por provincias
mapalima <- peru[peru@data$NAME_1 == "Lima",] # Seleccionamos las provincias de lima (polígonos y datos) Aquí tu indicaste otros números pero la data ha cambiado y esos son los actuales que tienen las provincias de lima.
datalima <- data.frame(mapalima) # Seleccionamos solo los datos de la provincias
# Los nombres de las provincias pueden ser obtenidas de 2 maneras:
datalima[7];mapalima$NAME_2;
#creamos el factor según los nombres de las provincias elegidas
mapalima$provincias <- factor(mapalima$NAME_2)
#la función factor es para eliminar los niveles que no existen
col <- rainbow(length(levels(mapalima$provincias ))) # asignamos los colores según los niveles
# mostramos el mapa
spplot(mapalima, "provincias", col.regions = col, main = "Lima Provincias")
# Además lo siguiente es por si se desea el mapa con texto (puede ser en vectores)
d1 <- list("sp.text",c(-75.99853,-11.),"Estadística")
spplot(
  mapalima, "provincias", col.regions = col, main = "Lima Provincias",sp.layout =
    list(d1)
)

El resultado del mapa es el siguiente (Por supuesto que puede ser mejorado según sus intereses):

Hecho en R con el paquete sp

Por otro lado, también se muestra ,a continuación, el código para obtener los distritos del departamento de Lima:

library(sp)
#descargamos los datos por distritos
gadm <- readRDS("PER_adm3.rds")

names(gadm)
# elegimos solo los distritos de lima
mapalima <- gadm[(gadm@data$NAME_2  == "Lima") |
                  gadm@data$NAME_3  == "Callao" | gadm@data$NAME_3  == "Ventanilla",]
dataprovlima <- data.frame(mapalima)
limageo <- mapalima[1]

distritos <- factor(mapalima$NAME_3) #la función factor es para eliminar los niveles que no existen
mapalima$distritos <- distritos# asignamos el factor

col <- rainbow(length(levels(mapalima$distritos))) # asignamos los colores según los niveles
# mostramos el mapa

spplot(mapalima, "distritos", col.regions = col, main = "Distritos del Departamento de Lima")

Espero que les sea útil =).