Day 13 of the #30DayMapChallenge - Track

R
Data visualization
30DayChallenge
Author
Affiliation
Published

November 13, 2019

I plotted an interactive map with R.

Load packages we are going to use:

  library(sf)
  library(geojsonsf)
  library(tidyverse)
  library(leaflet)
  1. Download roads (OSi - National 250k Map of Ireland) from the Ordnance Survey Ireland
roads_250k_path <- "Roads_-_National_250k_Map_Of_Ireland.geojson"

roads_250k <- geojsonsf::geojson_sf(roads_250k_path)  |> 
  mutate(RTT = as.factor(RTT))  |> 
  mutate(RTT_name = factor(recode(RTT,
                                  "-32768" = "Null",
                                  "984"    = "Local Route",
                                  "14"     = "Primary Route",
                                  "15"     = "Secondary Route",
                                  "16"     = "National Motorway"),
                           levels = c(
                             "Null",
                             "Local Route",
                             "Primary Route",
                             "Secondary Route",
                             "National Motorway")
  ) 
  )
  1. Plot the map
  p_popup <- paste("<strong> OBJECTID: </strong>", roads_250k$OBJECTID, "<br>",
                   "<strong> RTT: </strong>", roads_250k$RTT_name, "<br>",
                   "<strong> LEN: </strong>", round(roads_250k$LEN, 2), "km")
  pal_fun <- colorFactor("YlOrRd", NULL, n = 4)
  road_250k_map <- leaflet() %>%
    addPolylines(data = roads_250k, 
                 stroke = TRUE,
                 weight = 2,
                 col = ~pal_fun(roads_250k$RTT_name),
                 fillOpacity = 0.5,
                 highlightOptions = highlightOptions(color = "blue",
                                                     weight = 3,
                                                     bringToFront = TRUE),
                 label = paste("OBJECTID:", roads_250k$OBJECTID),
                 popup = p_popup) %>%
    addTiles() %>%
    addLegend(data = roads_250k,
              pal = pal_fun,
              values = ~RTT_name,
              opacity = 1,
              title = "Roads - OSi National 250k Map of Ireland")
  road_250k_map