Open anthonynorth opened 3 months ago
Optionally keep unused columns when serialising layers.
Example:
add_scatterplot_layer( data = data.frame(foo = 1), # ensure "foo" is serialised .keep = "foo" )
This allows for shiny applications to make accessor changes (e.g. changing the column used in get_elevation) without re-supplying any data.
get_elevation
library(shiny) library(rdeck) ui <- fillPage( rdeckOutput("map", height = "100%"), absolutePanel( top = 10, left = 10, selectInput("point_variable", "variable", c("foo", "bar"), "foo") ) ) point_data <- vctrs::data_frame( position = xy(runif(1e4, -180, 180), runif(1e4, -85, 85)), foo = runif(1e4), bar = rnorm(1e4) ) map <- rdeck() |> add_scatterplot_layer( id = "point", data = point_data, get_radius = 5, radius_units = "pixels", get_fill_color = scale_color_linear(foo), # we will need these columns! .keep = c(foo, bar) ) server <- function(input, output, session) { output$map <- renderRdeck(map) # when point_variable is updated, we update `get_fill_color`, using data already in the client observe({ point_variable <- input$point_variable variable_range <- point_data[[point_variable]] rdeck_proxy("map") |> update_scatterplot_layer( id = "point", get_fill_color = scale_color_linear(!!point_variable, limits = variable_range) ) }) } shinyApp(ui, server)
Optionally keep unused columns when serialising layers.
Example:
This allows for shiny applications to make accessor changes (e.g. changing the column used in
get_elevation
) without re-supplying any data.