Как мне создать реактивные и классные иконки в зависимости от цвета? - PullRequest
0 голосов
/ 29 января 2020

Я хочу создать реактивный цвет значка, где значки имеют цветовую кодировку на основе определенной категориальной переменной. Я не могу реализовать реактивность для цвета значка. Моя цель состоит в том, чтобы при фильтрации типа точки воды, скажем, ручного насоса, появлялись только зеленые значки, вместо этого появлялись все цвета значков, как показано на рисунке. shiny app app2

wtr_pt<-reactive(
   if(input$waterpoint=="All"){
    return(kiosk_data)
   }
   else{
     kiosk_filter<-filter(kiosk_data, Water_point_type==input$waterpoint)
     return(kiosk_filter)
   }

  ) 


#assign  the categorical values icon color
getcolor<-function(kiosk_data){
    sapply(kiosk_data$Water_point_type,function(Water_point_type){
      if(Water_point_type=="Hand pump"){
        "green"
      }

      else if(Water_point_type=="Mechanized borehole"){
        "orange"
      }

      else if(Water_point_type=="Standpipe (piped system)"){
        "red"
      }
    })
  }

 ikon2<-makeAwesomeIcon(icon = "home",
                         markerColor = getcolor(kiosk_data),
                          library = "ion"
                         )

 output$maps<-renderLeaflet(
    leaflet(wtr_pt()) %>%
      setView(lng= -2.3833318 ,lat=6.9833294,zoom = 10) %>%
      addTiles() %>%
      addAwesomeMarkers(
        icon = ikon2,
        lat = ~latitude,
        lng = ~longitude)
)
...