リーフレット マップにマーカーを表示する光沢のあるモジュールのループを作成しました。ただし、すべてのマップで同じマーカーが表示されます (別のマップに座標の各ペアを表示したいdata.frame
)。理由はわかりませんが、データのサブセット化が失敗しているようです。なぜこれが起こるのか、これを解決する方法を誰かが説明できますか?
library(shiny)
library(leaflet)
Data <- data.frame(longitude = c(11, 12, 14), latitude = c(50, 49, 51))
mod_map_ui <- function(.id) {
ns <- shiny::NS(.id)
leafletOutput(ns("map"))
}
mod_map <- function(input, output, session, .Data) {
output$map <- renderLeaflet({
leaflet() %>%
addTiles() %>%
addMarkers(data = .Data)
})
}
ui <- fluidPage(
uiOutput("list")
)
server <- function(input, output, session) {
observe({
tag.list <- tagList()
for (i in seq_len(NROW(Data))) {
tag.list <- tagAppendChildren(
tag.list,
mod_map_ui(paste0("map_mod", i)), br()
)
callModule(mod_map, paste0("map_mod", i), .Data = Data[i, ])
}
output$list <- renderUI({
tag.list
})
})
}
shinyApp(ui, server)