1

我正在尝试在 shiny 中并排放置两个空间图,并且有人建议我使用一个强大的功能syncmapview在弄清楚如何在 中显示mapview对象后shiny,我尝试集成sync到“闪亮”中,但出现以下错误:插槽错误(x,“地图”):对于这个“闪亮”类的对象,没有名称“地图”的插槽.list”。这是否意味着sync没有地图对象,因此无法集成synclatticeViewshiny?如果是这样,我想应该有解决方法,我的耳朵都敞开了。这是一个很好的功能,可以从 Shiny 访问并允许做一些有趣的事情。非常感谢任何建议。这是示例可重现代码:

library(shiny)
library(mapview)
ui <- fluidPage(
   mapviewOutput("samplemap"),
   p()
)
server <- function(input, output, session) {
   output$samplemap <- renderMapview({
      m1 <- mapview(gadmCHE,zcol="ID_1")
      m2 <- mapview(gadmCHE,zcol="OBJECTID")
      sync(m1,m2)
      })
}
shinyApp(ui, server)
4

1 回答 1

2

我们已经讨论sync过从 htmlwidget 生成返回值。目前,sync返回一张htmltools::tagList传单地图。Inserting tagsintoshiny与 inserting 略有不同mapview。我将尝试在下面的代码中进行解释。

library(mapview)

m1 <- mapview(gadmCHE,zcol="ID_1")
s1 <- sync(m1,m1)


library(shiny)

# if not dynamically adding maps
#   we can just insert as ui

shinyApp(
  ui = s1,
  server = function(input,output){}
)

# if there is a need to create the maps after UI
#   then we will need to handle differently
#   since sync gives us tags instead of an htmlwidget
shinyApp(
  ui = uiOutput("syncmap"),
  server = function(input,output){
    output$syncmap = renderUI({
      s1
    })
  }
)
于 2016-10-28T13:20:28.600 回答