我已經在ui.R和server.R文件中設置了此問題的示例。這是ui.R文件。有三個隨機數據集。無論用戶界面做什麼,都會顯示帶有標記的人。另外兩個數據集只有在被要求作爲「圈子」時才能被繪製。使用UI打開和關閉數據和傳單顯示
library(shiny)
library(leaflet)
pageWithSidebar(
headerPanel("Main Title Here"),
sidebarPanel(
checkboxInput('Circles', 'Show Locations', TRUE)
),
mainPanel(
leafletOutput("map")
)
)
該映射由server.R生成,如下所示。這將生成隨機數據和緯度和經度位置。
library(shiny)
library(leaflet)
library(ggplot2)
shinyServer(function(input, output) {
output$map <- renderLeaflet({
leaflet() %>%
addTiles(group = "OpenStreetMap") %>%
addMarkers(runif(20,-75,-74),
runif(20, 41, 42))
})
observe({
proxy <- leafletProxy("map")
if (input$Circles == TRUE) {
proxy %>% addCircles(runif(20,-75,-74),
runif(20, 41, 42),
group = "Circles",
color = "red") %>%
addCircles(runif(20,-75,-74),
runif(20, 41, 42),
group = "Circles",
color = "blue") %>%
addLegend(
position = "bottomright",
colors = c("red", "blue"),
labels = c("Group 1", "Group 2")
)
# cannot put group or label on legend.
} else {
proxy %>% hideGroup("Circles")
# %>% hideGroup("Group 2")
}
})
})
程序啓動時顯示圓圈(TRUE)。我在這裏看到兩個主要問題。首先,可以關閉這些圈子,但這是任何UI控件的結束。問題是他們不能再次打開。如果我嘗試啓動checkboxInput爲FALSE,UI控件將不會打開它。我不知道這是否標準,或者如果我做錯了什麼。
第二個主要問題是我無法將圖例編程爲與圓圈一起關閉。使用hideGroup()函數關閉這些圓圈。這被拒絕在圖例上使用。我已經接受了我嘗試的命令並將其轉換爲註釋行。繼續並刪除#號,以便您可以看到它創建的錯誤。我還沒有找到替代方案。
'hideGroup'的對面是'showGroup'。一旦你隱藏了它們,如果你想看到它們,你需要再次'展示'它們。 – SymbolixAU
這些圓圈的原始創建是使用命令「addCircles()」。我會將它們替換爲showGroup,還是以某種方式與addCircles結合? –
你可能需要'addCircles()'到原來的'leaflet()'調用。然後'代理'事件或者'show'或'hide',這取決於'input $ Circles'的條件 – SymbolixAU