首页 > 解决方案 > 在闪亮 + 传单中,每次执行渲染时都会更新 setview。我想防止这种情况

问题描述

我使用闪亮和传单创建了一个地图应用程序。它投影地图和一些形状文件。形状文件具有面积值。我想根据面积值设置是否显示形状文件。具体来说,使用了 sliderInput 函数。

虽然使用 sliderInput 函数限制了 shape 文件的显示,但每次通过 sliderInput 更改数字时都会重置 setview。而不是每次都运行 setview,我希望你在你所在的地方运行 setview。我应该怎么办?我要你告诉我。

下面是示例代码

library(shiny)
library(leaflet)

ui <- shinyUI(fluidPage(
  titlePanel("sample sample sample sample "),

  #sidebarLayout settings
  sidebarLayout(
    sidebarPanel(
      sliderInput("area_slider",label = h3("settings"),min = 0,max = 6000,value = c(0,6000)),
    ),
    #mainpanel settings
    mainPanel(
      leafletOutput("mymap",height=600)
    )
  )
))

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

  #map settings
  output$mymap <- renderLeaflet({
    leaflet() %>% 

      addTiles(group="OSM")%>%

      #setView
      #setView(lng=139.8,lat=35.7,zoom=12)%>%

      #maker settings1
      addAwesomeMarkers(lng = df$lng,
                        lat = df$lat,
                        clusterOptions = markerClusterOptions(),
                        group="Oct")%>%


      addPolygons(data = shp %>% subset(shp@data$area < input$area_slider),
                  color = "#2feeb5",
                  group="carea")%>%

      #Layers Control
      addLayersControl(
        baseGroups = c("OSM"),
        overlayGroups = c("Oct","carea"),
        options = layersControlOptions(collapsed = FALSE))

  })
})

shinyApp(ui, server)

标签: rshinyleaflet

解决方案


推荐阅读