传单地图最初在闪亮的选项卡面板内时不会呈现标记

  • 本文关键字:选项 地图 单地图 shiny leaflet
  • 更新时间 :
  • 英文 :


我想在Shiny的选项卡面板中展示一张传单地图。然而,问题是数据点圆在初始时不会呈现。只有在我移动滑块后,圆圈才会显示在地图上。当我点击选项卡面板时,是否可以显示圆圈?

下面是一个使用地震数据的例子。

library(shiny)
library(leaflet)
ui <- navbarPage("Shiny app",
tabPanel("Empty"),
navbarMenu("Quakes",
tabPanel("Quakes map",
bootstrapPage(
sidebarLayout(
sidebarPanel(top = 10, right = 10,
sliderInput("range", "Magnitudes", min(quakes$mag), max(quakes$mag),
value = range(quakes$mag), step = 0.1)
),
mainPanel(
leafletOutput("map")
)
)
)
)
)
)
server <- function(input, output, session) {

filteredData <- reactive({
quakes[quakes$mag >= input$range[1] & quakes$mag <= input$range[2],]
})


output$map <- renderLeaflet({
leaflet(quakes) %>% addTiles() %>%
fitBounds(~min(long), ~min(lat), ~max(long), ~max(lat))
})

observe({

leafletProxy("map", data = filteredData()) %>%
clearShapes() %>%
addCircles(radius = ~10^mag/10, weight = 1, color = "#777777",
fillOpacity = 0.7, popup = ~paste(mag)
)
})

}
shinyApp(ui, server)

没有理由仅仅为了使用反应数据而使用output$map和代理(或者可能我错过了什么(。您可以简单地在原始renderLeaflet():中使用filteredData()

server <- function(input, output, session) {

filteredData <- reactive({
quakes[quakes$mag >= input$range[1] & quakes$mag <= input$range[2],]
})

output$map <- renderLeaflet({
leaflet(filteredData()) %>% addTiles() %>%
fitBounds(~min(long), ~min(lat), ~max(long), ~max(lat)) %>% 
addCircles(radius = ~10^mag/10, weight = 1, color = "#777777",
fillOpacity = 0.7, popup = ~paste(mag)
)
})

}

最新更新