Создание карты по листовке + блеск. Обновление вернет карту в исходное местоположение - PullRequest
0 голосов
/ 04 апреля 2020

Я задал вопрос на следующей странице, но я опубликую его снова. В блеске + листовка setview обновляется при каждом выполнении рендера. Я хочу предотвратить это

В настоящее время мы создаем карты с использованием блеска и листовки. Файл shp проецируется на карту. файл shp → https://drive.google.com/file/d/1ji2J0vwEE9y8F0kNujmMoKPrf1IWZ7-x/view?usp=sharing

Я хочу показать / скрыть этот файл shp, установив размер области и длину окружности с помощью sliderInput et c.

Пример кода следующий:

library(shiny)
library(leaflet)
library(shinycssloaders)

shinyUI(fluidPage(

  titlePanel("sample sample sample sample"),

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

shinyServer(function(input, output) {

  shape_path <- "C:/Users/user/Documents/"
  shp_file <- readOGR(paste0(shape_path,"sample.shp"))

  ##########################

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

      #Base Groups
      addTiles(group="OSM")%>%

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


      addPolygons(data = shp_file %>%
                    subset(shp_file@data$area > input$area_slider[1] & shp_file@data$area < input$area_slider[2]),
                  color = "#808080",
                  group="area")%>%

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

  })

})

Предыдущие респонденты указали, что вы должны использовать LeafletProxy, я не знаю, как его использовать. Я рад, что вы могли бы сказать мне.

Большое спасибо.

...