В блестящем листочке setview обновляется при каждом выполнении рендера. Я хочу предотвратить это - PullRequest
2 голосов
/ 03 апреля 2020

Я создаю приложение карты, используя блеск и листовки. Это проектирует карту и некоторые файлы формы. Файл формы имеет значения площади. Я хочу установить, отображать ли файл формы или нет на основе значения площади. В частности, используется функция sliderInput.

Хотя отображение файла формы ограничено с помощью функции sliderInput, setview сбрасывается каждый раз, когда число изменяется sliderInput. Вместо того, чтобы запускать 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)
...