Mapa interactivo (leaflet)
En este apartado crearemos un mapa interactivo con el paquete leaflet. En concreto, aprendremos a:
A parte de leaflet, en los siguientes ejercicios utilizaremos otros paquetes que cargaremos a continuación.
#recordad que los paquetes deben de estar previamente instalados
library(htmlwidgets)
library(leaflet)
library(tidyverse)
library(RColorBrewer)
Crear y centrar un mapa
Para crear un mapa con leaflet tan solo tenemos que introducir la función siguiente:
leaflet() %>%
addTiles()
Si ejecutáis el código, veréis que R nos devuelve un mapamundi vacío. Lo único que podemos hacer es ampliar y reducir el mapa. Normalmente cuando creamos un mapa queremos centrar la atención en una región concreta del mundo. El siguiente paso que haremos, pues, será indicar la zona del mapa que mostraremos por defecto. Para centrar el mapa en una zona concreta, lo podemos hacer de dos maneras:
- Escogiendo el centro: Necesitaremos introducir las coordenadas de un único punto, que será el centro del mapa.
- Escogiendo los límites: Necesitaremos introducir cuatro coordenadas: los límites norte, sur, este y oeste del mapa.
Centro del mapa
Para escojer el centro del mapa utilitzaremos la función setView()
, donde introduciremos tres argumentos:
- Longitud (
lng
) - Latitud (
lat
) - Zoom (
zoom
)
leaflet() %>%
addTiles() %>%
setView(lng = 138.727424,
lat = 35.362465,
zoom = 11)
Límites del mapa
Para escojer el centro del mapa utilitzaremos la función fitBounds()
, donde introduciremos quatro argumentos:
- Longitud1 (
lng1
): El límite oeste. - Latitud1 (
lat1
): El límite sur. - Longitud2 (
lng2
): El límite este - Latitud2 (
lat2
): El límite norte.
leaflet() %>%
addTiles() %>%
fitBounds(lng1 = 2.171,
lat1 = 41.32,
lng2 = 2.179,
lat2 = 41.48)
Seleccionar un tipus de mapa
Por tipo de mapa entendemos el mapa base sobre el cual operamos. Existen varios proveedores que nos pueden proporcionar este mapa base. En este enlace tenéis múltiples decenas de mapas para escoger. Con leaflet podemos conformarnos con el mapa que tenemos por defecto o bien seleccionar otro mediante la función addProviderTiles()
, que pondremos en el código en sustitución de addTiles()
. Los tipos de mapas están almacenados en el objeto providers
, que podemos consultar si tecleamos names(providers)
.
Provad de ejecutar los dos siguientes códigos. Veréis que hemos pedido la visualitazión de una montaña y de una ciudad.
#Fuji
leaflet() %>%
addProviderTiles(providers$Esri.NatGeoWorldMap) %>%
setView(lng = 138.727424,
lat = 35.362465,
zoom = 10)
#Tokyo
leaflet() %>%
addProviderTiles(providers$Stamen.Toner) %>%
setView(lng = 139.753930,
lat = 35.682170,
zoom = 13)
Ejercicio 1: Definid con leaflet la visualización de un mapa donde figure alguna localitzación de Africa.
- Coordenadas: Podéis obtener fácilmente las coordenadas entrando en Google Maps y pulsando de forma sostenida en un punto del mapa. Aparecerá la información de la longitud y la latitud.
- Tipo de mapa: Consultad el tipo de mapa con
names(providers)
. Recomendamos probar los mapas “Esri,” algunos de la saga “CartoDB,” como “CartoDB.PositronNoLabels,” o bien “Stamen.Toner” si deseáis ver una ciudad. Es posible que algunos mapas necesiten un zoom más alejado para que los pueda visualizar bien.
zoom = 6
) para aseguraros de que no estéis cargando un mapa con demasiada resolución. Después aumentad la resolución a 7, 8, 9 … para ir ganando nitidez. Cuanto más resolución, más lento irá tu ordenador al cargar el mapa.Un resumen de lo que hemos visto hasta ahora lo encontramos en el siguiente vídeo:
Fuente: Datacamp