在Rshiny中将小册子映射缩放为默认值

M.Q*_*sim 3 r leaflet shiny

无论如何都要添加图层控件或按钮来重置地图并返回初始位置.例如,当您正在探索地图并放大时,然后您想要缩小以返回初始阶段.

library(shiny)
library(leaflet)

ui <- fluidPage(
  leafletOutput("mymap")

)

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

outline <- quakes[chull(quakes$long, quakes$lat),]

output$mymap <- renderLeaflet({ leaflet(quakes) %>%
  # Base groups
  addTiles(group = "OSM (default)") %>%
  addProviderTiles("Stamen.Toner", group = "Toner") %>%
  addProviderTiles("Stamen.TonerLite", group = "Toner Lite") %>%
  # Overlay groups
  addCircles(~long, ~lat, ~10^mag/5, stroke = F, group = "Quakes") %>%
  addPolygons(data = outline, lng = ~long, lat = ~lat,
              fill = F, weight = 2, color = "#FFFFCC", group = "Outline") %>%
  # Layers control
  addLayersControl(
    baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
    overlayGroups = c("Quakes", "Outline"),
    options = layersControlOptions(collapsed = FALSE)
    )

  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

Nic*_*icE 5

您可以在没有任何javascript代码的情况下执行此操作,方法是在单击按钮时使用leafletProxysetView更改地图的功能.

这是一个例子:

library(shiny)
library(leaflet)

ui <- fluidPage(
  leafletOutput("mymap"),
  actionButton("reset_button", "Reset view")

)

server <- function(input, output, session) {
  initial_lat = -23.079
  initial_lng = 178.15
  initial_zoom = 4

  output$mymap <- renderLeaflet({ leaflet(quakes) %>% 
                                    setView(lat = initial_lat, lng = initial_lng, zoom = initial_zoom) %>%
                                    addTiles(group = "OSM (default)") %>%
                                    addProviderTiles("Stamen.Toner", group = "Toner") %>%
                                    addProviderTiles("Stamen.TonerLite", group = "Toner Lite")})                                 


  observe({
    input$reset_button
    leafletProxy("mymap") %>% setView(lat = initial_lat, lng = initial_lng, zoom = initial_zoom)
  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要默认视图怎么办?取决于标记.而不是初始化initial_lat和initial_long? (2认同)