我正在使用基于 PostgreSQL 空间数据库的 Leaflet 地图构建一个 Shiny 应用程序。
我成功将空间数据导入到 SpatialPolygonDataFrame 中并将其显示在 Leaflet 小部件上。
我尝试使用 RenderTable 输出显示 SpatialDataFrame 中的数据,但它不起作用,即使使用 as.data.frame(spatialdataframe) 进行转换也是如此。 因此,这种转换足以使用 view()、kable() 或其他显示函数来显示表格,但在 Shiny 中则不行。
我应该再次转换吗?有人有主意吗?
ui <- fluidPage(
titlePanel("AgriPAG"),
sidebarLayout(
mainPanel(
tabsetPanel(
tabPanel(leafletOutput("m",width = "100%", height = 1000)),
tabPanel(tableOutput(as.data.frame(sample_test1)))
)
),
sidebarPanel("curseur")
)
)
server <- function(input,output, session){
data <- reactive({
x <- test1
})
output$mymap <- renderLeaflet({
test1 <- data()
m <- leaflet(data = sample_test1) %>%
addTiles() %>%
setView(lng=-52.3333300, lat=4.9333300 , zoom=10) %>%
addPolygons(data=sample_test1, weight=2, col="black", opacity=0.5)
m
})
output$table <- renderDataTable(as.data.frame(sample_test1))
}
shinyApp(ui = ui, server = server)
renderDataTable
不适用于 tableOutput
。您必须使用 dataTableOutput
来代替。此外,您应该为 inputId
添加正确的 dataTableOutput
。
要让一切正常工作,请将
tableOutput(as.data.frame(sample_test1))
中的 ui
更改为 dataTableOutput('table')