Я пытаюсь расширить ответ @SBista по адресу Пытаетесь интегрировать updateTabsetPanel с щелчком маркера листовки в R Shiny? чтобы мои ссылки на моей карте листовки перенаправляли пользователя на панель tabPanel, вложенную в две предыдущие панели tabsetPanel (например, первая › вторая › порыв или первая › второй › цис). Я могу заставить ссылку работать, но она перенаправляет меня только на первую панель вкладок во второй панели вкладок и не выбирает нужную панель вкладок. Я реконструировал то, что хочу, в приведенном ниже коде. В идеале будет карта с несколькими маркерами. При нажатии маркеров появится всплывающее окно с гиперссылкой. При нажатии на гиперссылку пользователь будет перенаправлен на tabPanel внутри TabsetPanel во второй раз, который содержит информацию для выбранного сайта. Любая помощь будет принята с благодарностью!
shinyServer(function(input, output, session) {
output$distribution_map <- renderLeaflet({
distribution_map <- leaflet() %>%
addProviderTiles(providers$Esri.NatGeoWorldMap) %>%
setView(lng =-122.280649 ,lat = 46.560582, zoom = 10) %>%
addMarkers(icon = mapIcons$fish_truck,
lng = -122.280649,
lat = 46.560582,
label = lapply(gust_backstrom_release_labels, HTML),
clusterOptions = markerClusterOptions(),
group = "Adult Release Sites",
labelOptions = labelOptions(textsize = "100%",
style = list(
"color" = "black",
"font-family" = "serif",
"box-shadow" = "5px 5px rgba(0,0,0.25,0.25)",
"border-color" = "rgba(0,0,0,0.5)")),
popup = paste(sep = "<br/>",
actionLink("?url=first/gust", "Learn about Gust Backstrom", onclick = 'Shiny.onInputChange(\"link_click\", Math.random())') %>%
addMarkers(icon = mapIcons$fish_truck,
lng = -122.280649,
lat = 46.560582,
label = lapply(cispus_release_labels, HTML),
clusterOptions = markerClusterOptions(),
group = "Adult Release Sites",
labelOptions = labelOptions(textsize = "100%",
style = list(
"color" = "black",
"font-family" = "serif",
"box-shadow" = "5px 5px rgba(0,0,0.25,0.25)",
"border-color" = "rgba(0,0,0,0.5)")),
popup = paste(sep = "<br/>",
actionLink("?url=first/cis", "Learn about Cispus", onclick = 'Shiny.onInputChange(\"link_click2\", Math.random())')
})
observeEvent(input$link_click,{
updateTabsetPanel(session, "second", "gust")
})
observeEvent(input$link_click2,{
updateTabsetPanel(session, "second", "cis")
})
}
ui <- tabsetPanel(id = "first",
tabPanel(value = "map",
leafletOutput("destination_map")),
tabPanel(value = "sites",
tabsetPanel(id = "second",
tabPanel(value = "gust", "Gust Backstrom",
h1("Here is the Gust Backstrom data")),
tabPanel(value = "cis", "Cispus",
h1("Here is the Cispus data")))
shinyApp(ui = ui, server = server)