# This example is for a single-file app.
# For modular apps, please see the "Using linkeR with Modules" vignette.
if (interactive()) {
library(shiny)
library(leaflet)
library(DT)
# Sample data
sample_data <- data.frame(
id = 1:10,
name = paste("Location", 1:10),
latitude = runif(10, 40.7, 40.8),
longitude = runif(10, -111.95, -111.85),
value = round(runif(10, 100, 1000))
)
ui <- fluidPage(
titlePanel("linkeR Example"),
fluidRow(
column(6, leafletOutput("my_map")),
column(6, DTOutput("my_table"))
)
)
server <- function(input, output, session) {
my_data <- reactive({
sample_data
})
output$my_map <- renderLeaflet({
leaflet(my_data()) %>%
addTiles() %>%
addMarkers(
lng = ~longitude,
lat = ~latitude,
layerId = ~id,
popup = ~name
)
})
output$my_table <- renderDT({
datatable(my_data()[, c("name", "value")], selection = "single")
})
link_plots(
session,
my_map = my_data,
my_table = my_data,
shared_id_column = "id"
)
}
shinyApp(ui, server)
}
Run the code above in your browser using DataLab