这个问题是这个问题的延续(点击 bar 时更新 Deckgl map in R shiny)。
当用户单击一个栏时,我会进入详细信息视图,这很好,但我还想在详细信息视图中更新缩放级别。这个怎么做 ?
我试图在“on_click”图层中设置缩放参数,但它似乎不起作用。
rm( list = ls() )
library( shiny ) ; library( shinydashboard ) ; library( dplyr ) ; library( deckgl )
ui <- basicPage( deckglOutput( 'map', height = '800px' ) )
server <- function(input, output) {
aggregate_df = data.frame( 'area' = LETTERS[1:2], 'count' = 110:111, median_lon = c( 3.39, 3.41 ),
median_lat = c( 49.7, 49.4 ), color = c("#0080FF", "#FF0080") )
orig_df = data.frame( 'area' = rep( c( 'A', 'B' ), c( 3, 2 ) ), count = 10:14, lon = c( 3.45, 3.39, 3.19, 3.41, 3.92 ),
lat = c( 48, 49.7, 52, 49.4, 51.5 ), color = c("#0080FF", "#FF0080", "#FF3030", "#00EE00", '#FF7F24') )
output$map = renderDeckgl({
deckgl( zoom = 7, pitch = 35, latitude = 48.29507, longitude = 4.0731520 ) %>%
add_column_layer(
data = aggregate_df,
getPosition = ~median_lon + median_lat,
getElevation = ~count,
getFillColor = ~color,
getTooltip = "Area: {{area}}, Count: {{count}}",
elevationScale = 100
) %>% add_basemap()
})
observeEvent(input$map_onclick, {
deckgl_proxy( 'map' ) %>%
add_column_layer(
data = orig_df %>% filter( area == input$map_onclick$object[["area"]] ),
getPosition = ~lon + lat,
getElevation = ~count,
getFillColor = ~color,
getTooltip = "Area: {{area}}, Count: {{count}}",
elevationScale = 1000,
zoom = 5,
) %>% update_deckgl(it = "works")
})
}
shinyApp(ui, server)