Intersecting Circles on a Map based on different category combinations

I am trying to build an app where I show circles that represent the radiuses of workers from certain coordinates. However, I would like to also include categorical variables like the day of the week in which the worker works (Say Monday or Tuesday) . I want to show only the circles that have certain combinations on the map when I select them. For instance, if I select Mon and I also select Manager Andrew_XXXXX, I will only see the circles of Mon and Manager_XXXXX I am having trouble making those intersections happen in an efficient way.

## Data

Latitude = c(33.79053,34.31533,21.44848,33.89115)
Longitude = c(-84.0348,-83.8166,-158.003, -117.295)
Worker = c('A','A','B','B')
Max.Distance.from.C.or.HB = c(35,55,75,20)
Manager = c('Andrew XXXXX','Andrew XXXXX','Andy YYYY', 'Andy YYYY')
Days = c('Tuesday','Monday','Monday','Tuesday')


coverage_data <- data.frame(Latitude,Longitude,Worker, Max.Distance.from.C.or.HB, Manager,
                            Days)


# Convert to miles


coverage_data <- coverage_data %>%
  mutate(Radius = coverage_data$Max.Distance.from.C.or.HB * 1609.34)


#Show  days Monday to Friday
coverage_Monday <- coverage_data %>%
  filter(Days == "Monday")
coverage_Tuesday <- coverage_data %>%
   filter(Days == 'Tuesday')



#Create label for Monday cases
coverage_Monday$label <- paste("<p>", coverage_Monday$Worker, "</p>",
                               "<p>", coverage_Monday$Manager, "</p>",
                               "<p>", coverage_Monday$Days, "</p>",
                               "<p>", coverage_Monday$Radius, "</p>",
                               sep="")

#Create label for Tuesday cases
coverage_Tuesday$label <- paste("<p>", coverage_Tuesday$Worker, "</p>",
                                "<p>", coverage_Tuesday$Manager, "</p>",
                                "<p>", coverage_Tuesday$Days, "</p>",
                                "<p>", coverage_Tuesday$Radius, "</p>",
                                sep="")





####### map 2  Managers ########

#Show  Managers coverage

coverage_Andrew_XXXXX<- coverage_data %>%
  filter(Manager == "Andrew XXXXX")
coverage_Andy_YYYY <- coverage_data %>%
  filter(Manager == 'Andy YYYY')




#Create label for Managers
 coverage_Andrew_XXXXX$label <- paste("<p>", coverage_Andrew_XXXXX$Worker, "</p>",
                                       "<p>", coverage_Andrew_XXXXX$Manager, "</p>",
                                        "<p>", coverage_Andrew_XXXXX$Days, "</p>",
                                        "<p>", coverage_Andrew_XXXXX$Radius, "</p>",
                                        sep="")


 coverage_Andy_YYYY$label <- paste(  "<p>", coverage_Andy_YYYY$Worker, "</p>", 
                                     "<p>", coverage_Andy_YYYY$Manager, "</p>",
                                        "<p>", coverage_Andy_YYYY$Days, "</p>",
                                        "<p>", coverage_Andy_YYYY$Radius, "</p>",
                                        sep="")




# 
pal <- colorFactor(
  palette = 'Set1',   #Dark2 is another palette option
  domain = coverage_data$Worker
)

  #colorFactor


#add checkbox control.


mapreprex <- leaflet(coverage_data) %>%
  setView(lng = -95.7129, lat = 34.0902, zoom = 4.499) %>%
  addProviderTiles(providers$OpenStreetMap.France, group = 'Monday') %>%
  addProviderTiles(providers$OpenStreetMap.France, group = 'Tuesday') %>%

  ###### DAYS #######
addCircles(lng = coverage_Monday$Longitude,
           lat = coverage_Monday$Latitude,
           color = ~pal(coverage_Monday$Worker),
           weight = 1,
           radius = coverage_Monday$Radius,
           opacity = 0.5,
           #label = lapply(coverage_Monday$label, HTML),
           fillOpacity = 0.55,
           group = "Monday") %>%

   addCircles(lng = coverage_Tuesday$Longitude,
              lat = coverage_Tuesday$Latitude,
              color = ~pal(coverage_Tuesday$Worker),
              weight = 1,
              radius = coverage_Tuesday$Radius,
              opacity = 0.5,
              fillOpacity = 0.55,
             label = lapply(coverage_Tuesday$label, HTML),
              group = "Tuesday") %>%


  ####### MANAGERS ######
 addCircles(lng = coverage_Andrew_XXXXX$Longitude,
            lat = coverage_Andrew_XXXXX$Latitude,
            color = ~pal(coverage_Andrew_XXXXX$Worker),
            weight = 1,
            radius = coverage_Andrew_XXXXX$Radius,
            opacity = 0.5,
            label = lapply(coverage_Andrew_XXXXX$label, HTML),
            fillOpacity = 0.55,
            group = "Andrew XXXXX") %>%

   addCircles(lng = coverage_Andy_YYYY$Longitude,
             lat = coverage_Andy_YYYY$Latitude,
              color = ~pal(coverage_Andy_YYYY$Worker),
              weight = 1,
              radius = coverage_Andy_YYYY$Radius,
              opacity = 0.5,
              fillOpacity = 0.55,
              label = lapply(coverage_Andy_YYYY$label, HTML),
              group = "Andy YYYY") %>%



  addLayersControl(
 overlayGroups= c("Andrew XXXXX", "Andy YYYY"),
    baseGroups =  c("Monday", "Tuesday"),
    options = layersControlOptions(collapsed = FALSE))

mapreprex 

Within my app I want to be able to select days say ( Mon ) and the manager and thus see the circles of for that manager on a Monday.

Notice from the code above that when I select Monday and Andrew XXXXX, Tuesday data also shows, which is wrong!

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.