Cambiar estilos al seleccionar y deseleccionar múltiples polígonos con Folleto / Brillante

Tengo algunos problemas para cambiar los estilos de polígono al seleccionar y deseleccionar polígonos en una aplicación de Leaflet Shiny en la que estoy trabajando. En mi aplicación actual, cuando haces clic en un polígono, ese polígono se resalta con un color diferente. Idealmente, quiero que el usuario pueda seleccionar y resaltar múltiples polígonos. También quiero que el usuario pueda volver a hacer clic en un solo polígono resaltado para anular su selección.

Lo mejor que he podido administrar es seleccionar varios polígonos, darles el mismo ID de grupo "seleccionado" y luego anular la selección de todo el grupo cuando se vuelve a hacer clic en un polígono. Aquí hay un ejemplo / código reproducible:

library(raster)
library(shiny)
library(leaflet)

#load shapefile
rwa <- getData("GADM", country = "RWA", level = 1)

shinyApp(
  ui = fluidPage(
    leafletOutput("map")
  ), 

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

    #initial map output
    output$map <- renderLeaflet({
      leaflet() %>% 
        addTiles() %>% 
        addPolygons(data = rwa, 
                    fillColor = "white", 
                    fillOpacity = 1, 
                    color = "black", 
                    stroke = T, 
                    weight = 1, 
                    layerId = rwa@data$OBJECTID, 
                    group = "regions")
    }) #END RENDER LEAFLET

    observeEvent(input$map_shape_click, {

      #create object for clicked polygon
      click <- input$map_shape_click

      #define leaflet proxy for second regional level map
      proxy <- leafletProxy("map")

      #subset regions shapefile by the clicked on polygons
      selectedReg <-rwa[rwa@data$OBJECTID == click$id,]


      #map clicked on polygons
      proxy %>% addPolygons(data = selectedReg,
                            fillColor = "red",
                            fillOpacity = 1,
                            weight = 1,
                            color = "black", 
                            stroke = T,
                            group = "selected",
                            # layerId = "selected")
                            layerId = selectedReg@data$OBJECTID)


      #remove polygon group that are clicked twice 
      if(click$group == "selected"){
        proxy %>% 
          clearGroup(group = "selected")
      } #END CONDITIONAL 

    }) #END OBSERVE EVENT

  }) #END SHINYAPP

En el ejemplo anterior, cada polígono en el que se hace clic se vuelve rojo. Si se vuelve a hacer clic en un polígono rojo previamente seleccionado, cada polígono rojo se borra del mapa, dejando las representaciones iniciales del polígono blanco.

Puedo lograr el efecto deseado de selección / anulación de selección cuando estoy trabajando con un solo polígono a la vez usando el Id. De capa "seleccionado" (comentado en el código anterior), pero al hacerlo elimina mi capacidad de seleccionar y resaltar múltiples polígonos al mismo tiempo.

Estoy abierto a cualquier sugerencia!

Respuestas a la pregunta(1)

Su respuesta a la pregunta