0

I am using MapDeck to use the mb_isochrone function to draw distances from a specific location in Arlington Heights, Illinois.

This is my code so far:

arlington.race <- c("-88.010102466048", "42.093383772976495")

isochrones <- mb_isochrone(arlington.race, 
                           distance = c(8046,
                                        16093,
                                        24140,
                                        32186))

mapdeck(style = mapdeck_style("streets"),
        location = c("-88.010102466048", "42.093383772976495"),
        zoom = 8.5) %>%
  add_polygon(data = isochrones,
              fill_colour = "distance",
              fill_opacity = 0.5,
              legend = TRUE,
              update_view = FALSE,
              legend_format = c(5, 10, 15, 20))

meters2miles <- c(5,10,15,20)

As you can see at the bottom, I am trying to use the legend_format function to edit the legend to show the distances in miles (5 miles, 10 miles, 15 miles, 20 miles). As well, I have tried to do it multiple ways including doing:

legend_format = list(meters2miles)

However, I cannot get the legend to switch from showing meters to miles no matter my method/attempt.

SymbolixAU
  • 25,502
  • 4
  • 67
  • 139
bcongelio
  • 81
  • 9

1 Answers1

1

The legend_format argument expects a function to apply to the legend values

Here's a reproducible example of how to use it

library(mapdeck)
set_token(secret::get_secret("MAPBOX"))  ## add your own API key

df <- mapdeck::capitals

## colour the data by the 'value' column
df$value <- sample(1:10, size = nrow(df), replace = T)

## in the legend we want to show the values multiplied by 1000
legend_converter <- function(x) {
    return( as.numeric( x ) * 1000 )
}

mapdeck() %>%
    add_scatterplot(
        data = df
        , fill_colour = "value"
        , legend = TRUE
        , legend_format = list( fill_colour = legend_converter )
    )

enter image description here


Reference

Here's the article I wrote on how to manipulate the legend

SymbolixAU
  • 25,502
  • 4
  • 67
  • 139