Uso de Google Maps en R
Google Maps actualmente es una herramienta que puede ser complementaria a muchas aplicaciones por los servicios y opciones de cartografía que ofrece google, por lo que se puede ahorrar dinero en proyectos muy pequeños o personales y tiempo para generar cosas básicas con cartografía temática y si combinamos esto con la potencia y versatilidad del lenguaje de programación R se pueden tener muy buenos resultados, en proyectos que requieran datos estadísticos o localización de los mismos, como en el siguiente ejemplo de mapa usando la librería de R Rgooglemaps.
#creando mapa de puntos con googlemaps
#se instala paquete de google maps para R, el cual carga desde internet información google
install.packages("RgoogleMaps")
#Se define espacio de trabajo
setwd("La ruta de la carpeta que defina")
#llamando librerias requeridas
require(RgoogleMaps)
library(maptools)
#leyendo datos
datos<- readShapePoints("wgs84.shp")
#definiendo centro del mapa
lat = c(min(datos$Latitud),max(datos$Latitud));
lon = c(min(datos$Longitud),max(datos$Longitud));
#graficando mapa y puntos , es posible escoger mas opciones de mapa s escoge esta para una mejor compocision
MyMap<- GetMap.bbox(latR =lat ,lonR = lon, maptype='terrain', destfile = "garbage_locations.png");
pic = PlotOnStaticMap(MyMap)
convirtiendo coordenadas georaficas a coordenadas de imagen
cord = LatLon2XY.centered(MyMap,datos$Latitud,datos$Longitud)
coordenadas de sitios
points(cord$newX,cord$newY,col=colors()[4],lwd=1)
ubicación de etiquetas
text(cord$newX,cord$newY,datos$Estacion,cex=0.8,col=colors()[4])
Ajuste de coordendas de etiquetas para evitar traslape
loc_x = datos$Longitud; loc_y = datos$Latitud-0.005;
i_Canaveralejo = which(datos$Estacion=="Cañaveralejo")
i_La_Ermita = which(datos$Estacion=="La Ermita")
i_Compartir = which(datos$Estacion=="Compartir")
i_Univalle = which(datos$Estacion=="Univalle")
i_Pance = which(datos$Estacion=="Pance")
i_Base_Aerea = which(datos$Estacion=="Base Aerea")
i_Era = which(datos$Estacion=="Era")
i_La_Flora = which(datos$Estacion=="La Flora")
loc_x[i_Canaveralejo] = loc_x[i_Canaveralejo]-0.009;
loc_x[i_La_Ermita] = loc_x[i_La_Ermita]-0.009;
loc_x[i_Compartir] = loc_x[i_Compartir]-0.009;
loc_x[i_Univalle] = loc_x[i_Univalle]+0.005;
loc_y[i_Pance] = loc_y[i_Pance]+0.010;
loc_x[i_Base_Aerea] = loc_x[i_Base_Aerea]+0.005;
loc_x[i_Era] = loc_x[i_Era]+0.005;
loc_x[i_La_Flora] = loc_x[i_La_Flora]+0.005;
Redibujando el mapa
pic = PlotOnStaticMap(MyMap)
cord = LatLon2XY.centered(MyMap,datos$Latitud,datos$Longitud)
points(cord$newX,cord$newY,col="blue",lwd=2)
Nuevamente coordenadas corregidas de las etiquetas
cord = LatLon2XY.centered(MyMap,loc_y,loc_x)
text(cord$newX,cord$newY,datos$Estacion,cex=0.9,col="black" )
Este seria el resultado del codigo anterior.
Si desean saber más sobre esta librería pueden revisar esta dirección https://cran.r-project.org/web/packages/RgoogleMaps/index.html cuenta con la documentación principal de la librería y en caso de otro ejemplo pueden revisar este enlace https://www.r-bloggers.com/heatmap-of-toronto-traffic-signals-using-rgooglemaps/
Está la opción de estadística espacial, usan el lenguaje de programación R, como elemento principal de enseñanza.
Espero que sea de utilidad :)