我正在尝试two spatial plots side-by-side in shiny,我被提出了一个功能强大的sync
mapview
。在确定如何display mapview
object in shiny
之后,我尝试将sync
整合到'闪亮的'中,但得到以下错误:插槽错误(x,"地图&# 34;):没有名称的插槽"地图"对于这个类的对象" shiny.tag.list" 的。这是否意味着sync
没有地图对象,因此,无法将sync
或latticeView
与shiny
进行整合?如果是这样,我想应该有解决方案,我的耳朵都是开放的。这是一个很好的功能,可以从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)
答案 0 :(得分:2)
我们已经讨论过从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
})
}
)