R - 以闪亮显示'sync'(地图视图)



我正在尝试在shiny中并排放置两个空间情节,并且我建议使用强大的功能,mapview中的sync。在确定如何在shiny中显示mapview对象后,我试图将sync集成在"shiny"中,但得到以下错误:槽位(x,"map")错误:该类"shiny.tag"对象没有名称为"map"的槽位。名单"。这是否意味着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)

我们已经讨论了从sync到htmlwidget的返回值。目前,sync返回传单地图的htmltools::tagList。将tags插入shiny将与插入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
    })
  }
)

相关内容

  • 没有找到相关文章

最新更新