R/mod_map_fct.R

Defines functions bind_skiabilite filter_ski_routes

#' Filter a given routes dataset
#' 
#' Apply user filtering to the routes dataset 
#'
#' @param routes tibble. Full dataset
#' @param dep vector. Minimum and maximum routes starting elevation
#' @param deniv vector. Minimum and maximum routes elevetion gain
#' @param diff vector. Minimum and maximum routes ski difficulty
#' @param expo numeric. Maximum routes exposition
#' @param ski numeric. Minimum routes skiabilite
#'
#' @return tibble. Filtered routes
#'
#' @noRd
#' 
#' @importFrom dplyr filter
filter_ski_routes <- function(routes, dep = c(500, 2000), deniv = c(100, 10000), diff = c(1, 5), expo = "", ski = "") {
  expo <- as.numeric(expo)
  ski <- as.numeric(ski)
  filtered_routes <- filter(routes,
                            dep[1] <= altitude & altitude <= dep[2]
                            &
                              deniv[1] <= denivele & denivele <= deniv[2]
                            &
                              diff[1] <= as.integer(difficulte) 
                            & 
                              as.integer(difficulte) <= diff[2]
                            &
                              (is.na(expo) | exposition <= expo)
                            &
                              (is.na(ski) | skiabilite >= ski)
  )
  filtered_routes
}

#' Filter a given routes dataset
#'
#' Apply user filtering to the routes dataset
#'
#' @param db_conn SQLiteConnection.
#' @param routes tibble. Full dataset
#'
#' @return tibble. Filtered routes
#'
#' @noRd
#'
#' @importFrom dplyr left_join
bind_skiabilite <- function(db_conn, routes) {
  routes %>%
    left_join(get_latest_skiabilite(db_conn), "route")
}
vadmbertr/bonski.shiny documentation built on Dec. 23, 2021, 2:07 p.m.