Я пытаюсь создать блестящую приборную панель, которая циклически понижает уровни полигонов в листовке.
При щелчке по многоугольнику он добавляет 1 к индикатору «уровень» и показывает слой многоугольника под многоугольником, по которому щелкнули. Когда он достигает нижнего слоя, он также показывает маркеры внутри этого многоугольника и возвращается к верхнему слою.
Однако я не могу заставить работать индикатор уровня. Он продолжает сбрасываться в ноль, циклически проходя через первый и последний уровень.
Если бы кто-нибудь мог помочь мне исправить это, это было бы очень признательно!
Вот мой код ниже:
server <- function(input, output) {
level<- 0
# plot all polygons of the first level, which is 0
output$map <- renderLeaflet({
leaflet(data = wijk_sf) %>%
#setView(lng = 4.473719, lat = 51.88956, zoom = 11) %>%
addProviderTiles("Stamen.Terrain") %>%
addPolygons(color = "black",
fillColor = "darkgreen",
fillOpacity = 0.7,
label = ~GEBDNAAM,
layerId = ~GEBDNAAM
)
})
observe(
{click = input$map_shape_click
p <- input$map_shape_click
if(is.null(click)){
return()
}else if((p$id %in% wijk_vec) & level == 0){
level<- 1
# plot polygon level 0 here and set level to 1
}else if((p$id %in% buurt_vec) & level == 1){
level <- 2
# if level == 1, plot polygon level 1 here and set level to 2
}else if((p$id %in% buurt_vec) & level == 2){
level<- 0
# if level == 2, plot polygon level 2 here and set level to 0
}else{
level <- 0
# if all else fails, set level to 0 and plot the standard level 0 map
leafletProxy('map') %>%
clearShapes() %>%
clearMarkers() %>%
setView(lng = 4.473719, lat = 51.88956, zoom = 11) %>%
addPolygons(data = df[,level])
}
)
}