R选中复选框组在地图上绘制数据
R选中复选框组在地图上绘制数据,r,shiny,r-leaflet,R,Shiny,R Leaflet,我对shiny很陌生,我有一个问题。 我有一个简单的数据集,其中包含在某个位置(X,Y)观察到的物种(物种)数量(总数) 我想生成一张地图,让你可以在下拉菜单中选择物种。闪亮然后显示你是地图上出现的物种 根据我的经验,我已经走得很远了,但是在菜单中选择物种并没有任何作用 ui <- (fluidPage(titlePanel("Species Checker"), sidebarLayout( sidebarPan
我对shiny很陌生,我有一个问题。
我有一个简单的数据集,其中包含在某个位置(X,Y)观察到的物种(物种)数量(总数) 我想生成一张地图,让你可以在下拉菜单中选择物种。闪亮然后显示你是地图上出现的物种 根据我的经验,我已经走得很远了,但是在菜单中选择物种并没有任何作用
ui <- (fluidPage(titlePanel("Species Checker"),
sidebarLayout(
sidebarPanel(
selectizeInput('species', 'Choose species',
choices = df$Species, multiple = TRUE)
),
mainPanel(
leafletOutput("CountryMap",
width = 1000, height = 500))
)
))
我知道我的代码可能很凌乱,但我再次强调我的经验=)
我并没有马上在这里得到一个示例数据集,所以这里是图片
这是上述代码的结果(数据略有不同)
这是您需要的。我认为你有足够的技巧来理解这一点,但如果你有任何问题,请发表评论
server <- function(input, output, session) {
# map_data <- reactive({
# req(input$species)
# df[df$Species %in% input$species, ]
# })
output$CountryMap <- renderLeaflet({
leaflet() %>% addTiles() %>%
setView(lng = 10, lat = 40, zoom = 5)
})
map_proxy <- leafletProxy("CountryMap")
observe({
md <- df[df$Species %in% input$species, ]
map_proxy %>%
addCircles(lng = md$Y, lat = md$X, weight = 10,
radius = sqrt(md$Number_Total)*15000, popup = md$Species)
})
}
server上述代码的结果是:啊哈,是的,这确实是一个很大的帮助!我理解代码。现在我可以选择物种,它们将显示在我的地图上。如果我取消选择某个物种,该物种将保留在地图上。我一直在想办法,但到目前为止没有成功:-)我很快会更新:-)再次,谢谢!如果它解决了你的问题,请考虑它是正确的。嗯,嗯,我仍然在努力“重置”地图。我将在下面发表评论:-)很快解决了我希望:-)好的,我已经编辑了答案并在map\u data
reactive中注释掉req(input$species)
。这应该能解决你的问题。让我知道。不幸的是,它没有改变?被绘制的物种,仍然被绘制。。。对不起,再一次,谢谢!
shinyApp(ui = ui, server = server)
server <- function(input, output, session) {
# map_data <- reactive({
# req(input$species)
# df[df$Species %in% input$species, ]
# })
output$CountryMap <- renderLeaflet({
leaflet() %>% addTiles() %>%
setView(lng = 10, lat = 40, zoom = 5)
})
map_proxy <- leafletProxy("CountryMap")
observe({
md <- df[df$Species %in% input$species, ]
map_proxy %>%
addCircles(lng = md$Y, lat = md$X, weight = 10,
radius = sqrt(md$Number_Total)*15000, popup = md$Species)
})
}