Я делаю карту Shiny Leaflet, которая показывает набор рек с данными о качестве воды по месяцам. Ниже приведен мой код сервера для рендеринга листовки. Я хотел бы изменить его, чтобы карта не перерисовывалась и не перецентрировалась каждый раз, когда пользователь изменяет виджет управления месяцами. Я не могу понять, как это сделать. Я попытался поместить оператор setView в предложение if (), используя глобальную переменную, которая отслеживает, является ли это первым запуском, но я получаю ошибки. Я попытался полностью удалить оператор setView, но карта по-прежнему перенаправляет aws к границам рек и данных по умолчанию.
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput(inputId = "month",
label = "Month (March-November)",
min = 3, max = 11,
step = 1, ticks = FALSE,
value = 9)
)
mainPanel(
leafletOutput("map", width = "100%", height = 480)
)
)
)
server <- function(input, output){
output$map <- renderLeaflet({
map <- leaflet(DFA()) %>% addProviderTiles(providers$Esri.WorldGrayCanvas) %>%
setView(-71.46, 42.42, zoom = 10) %>%
addPolylines(data = majStrm, color = "blue",
weight = 2, smoothFactor = 1) %>%
addCircleMarkers(lng = ~Lon, lat = ~Lat,
fillColor = ~pal(DFA()[,7]),
fillOpacity = 0.9,
radius = 6,
stroke = TRUE, weight = 1,
color = "black", opacity = 1)
map
})
}