如何更改 MapView 的主要数据

How to change a MapView's main data

我正在尝试使用 observeEvent() 将 Mapview 的 x 参数更改为新数据。我通常只使用 clearShapes() 然后 addPolygons(),但需要 zcol 等参数。

我想做类似下面的事情:

server <- function(input, output) {
  output$DisplayMap <- renderLeaflet(
    mapview(first_data, zcol = coolCol, color = brewer.pal(12, "Set3") %>%
      addControl(actionButton("Next", ">"), position = "topright")
  )
  observeEvent(input$Next, {
    output$DisplayMap$x <- next_data  # This doesn't work
  })
}

我意识到有 2 个问题在起作用(更改变量的接口和这样做的方法),其中一个可能需要某种形式的 React

我认为不可能像这样修改输出(但实际上,使用 MRE 会更容易)。

你应该这样想:

server <- function(input, output) {

  my_data <- reactiveVal(data.frame(a = 1, b = 2))

  output$DisplayMap <- renderLeaflet(
    mapview(my_data()[[input$Next]], zcol = coolCol, color = brewer.pal(12, "Set3") %>%
      addControl(actionButton("Next", ">"), position = "topright")
  )
}

假设 input$Next 是用户可以在 GUI 中选择的列名称。这只是为了向您展示一个想法。如果您仍然需要帮助,请发送 MRE,我可以编辑此答案。