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.

CUIDADO CON EL ZOOM!: Empezad primero con una resolución baja (por ejemplo, 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

Previous
Next