147 lines
4.8 KiB
R
147 lines
4.8 KiB
R
#' Create custom color overrides
|
|
#'
|
|
#' @description
|
|
#' Creates a list of color overrides that can be applied to a built-in flavor.
|
|
#' This is the recommended way to customize map colors while keeping the
|
|
#' proper rendering rules (zoom handling, polygon simplification, etc.).
|
|
#'
|
|
#' @param background Background color
|
|
#' @param earth Land/earth color
|
|
#' @param water Water color
|
|
#' @param park Park/green space color (also called park_a or park_b)
|
|
#' @param wood Forest/woodland color (also called wood_a or wood_b)
|
|
#' @param hospital Hospital area color
|
|
#' @param industrial Industrial area color
|
|
#' @param school School/university area color
|
|
#' @param beach Beach color
|
|
#' @param glacier Glacier color
|
|
#' @param highway Highway road color
|
|
#' @param major Major road color
|
|
#' @param minor Minor road color
|
|
#' @param city_label City label color
|
|
#' @param state_label State/region label color
|
|
#' @param country_label Country label color
|
|
#' @param ocean_label Ocean label color
|
|
#' @param ... Additional color properties
|
|
#'
|
|
#' @return A list of color overrides to pass to \code{\link{addProtomaps}}.
|
|
#'
|
|
#' @examples
|
|
#' # Simple earth and water colors
|
|
#' pmColors(earth = "#d3d3d3", water = "#1a3a5c")
|
|
#'
|
|
#' # Dark theme with custom colors
|
|
#' pmColors(
|
|
#' background = "#1a1a2e",
|
|
#' earth = "#1a1a2e",
|
|
#' water = "#16213e",
|
|
#' park = "#1f4037",
|
|
#' highway = "#4a4a6a"
|
|
#' )
|
|
#'
|
|
#' # Minimal grayscale
|
|
#' pmColors(
|
|
#' background = "#ffffff",
|
|
#' earth = "#f5f5f5",
|
|
#' water = "#e0e0e0"
|
|
#' )
|
|
#'
|
|
#' @seealso \code{\link{addProtomaps}}, \code{\link{protomaps_colors}}
|
|
#' @export
|
|
pmColors <- function(background = NULL,
|
|
earth = NULL,
|
|
water = NULL,
|
|
park = NULL,
|
|
wood = NULL,
|
|
hospital = NULL,
|
|
industrial = NULL,
|
|
school = NULL,
|
|
beach = NULL,
|
|
glacier = NULL,
|
|
highway = NULL,
|
|
major = NULL,
|
|
minor = NULL,
|
|
city_label = NULL,
|
|
state_label = NULL,
|
|
country_label = NULL,
|
|
ocean_label = NULL,
|
|
...) {
|
|
|
|
# Start with extra args, add named params, remove NULLs
|
|
colors <- c(
|
|
list(...),
|
|
list(
|
|
background = background, earth = earth, water = water,
|
|
hospital = hospital, industrial = industrial, school = school,
|
|
beach = beach, glacier = glacier, highway = highway, major = major,
|
|
city_label = city_label, state_label = state_label,
|
|
country_label = country_label, ocean_label = ocean_label,
|
|
# Expand paired colors
|
|
park_a = park, park_b = park,
|
|
wood_a = wood, wood_b = wood,
|
|
minor_a = minor, minor_b = minor
|
|
)
|
|
)
|
|
colors[!vapply(colors, is.null, logical(1))]
|
|
}
|
|
|
|
|
|
#' Protomaps Color Properties Reference
|
|
#'
|
|
#' @description
|
|
#' Reference documentation for all available color properties that can be
|
|
#' customized using \code{\link{pmColors}}.
|
|
#'
|
|
#' @section Base Colors:
|
|
#' \describe{
|
|
#' \item{\code{background}}{Map background color}
|
|
#' \item{\code{earth}}{Land/terrain color}
|
|
#' \item{\code{water}}{Water bodies color}
|
|
#' }
|
|
#'
|
|
#' @section Land Use Colors:
|
|
#' \describe{
|
|
#' \item{\code{park_a}, \code{park_b}}{Park colors (use \code{park} in pmColors)}
|
|
#' \item{\code{wood_a}, \code{wood_b}}{Forest/woodland colors (use \code{wood} in pmColors)}
|
|
#' \item{\code{hospital}}{Hospital areas}
|
|
#' \item{\code{industrial}}{Industrial zones}
|
|
#' \item{\code{school}}{Schools and universities}
|
|
#' \item{\code{beach}}{Beach areas}
|
|
#' \item{\code{zoo}}{Zoo areas}
|
|
#' \item{\code{aerodrome}}{Airport areas}
|
|
#' \item{\code{glacier}}{Glacier areas}
|
|
#' }
|
|
#'
|
|
#' @section Road Colors:
|
|
#' \describe{
|
|
#' \item{\code{highway}}{Highway/motorway color}
|
|
#' \item{\code{major}}{Major road color}
|
|
#' \item{\code{minor_a}, \code{minor_b}}{Minor road colors (use \code{minor} in pmColors)}
|
|
#' \item{\code{railway}}{Railway lines}
|
|
#' \item{\code{pier}}{Pier/dock structures}
|
|
#' }
|
|
#'
|
|
#' @section Label Colors:
|
|
#' \describe{
|
|
#' \item{\code{city_label}}{City name labels}
|
|
#' \item{\code{state_label}}{State/region labels}
|
|
#' \item{\code{country_label}}{Country name labels}
|
|
#' \item{\code{ocean_label}}{Ocean/sea labels}
|
|
#' \item{\code{roads_label_major}}{Major road name labels}
|
|
#' \item{\code{roads_label_minor}}{Minor road name labels}
|
|
#' }
|
|
#'
|
|
#' @section Landcover Colors (optional object):
|
|
#' These are specified as a nested object:
|
|
#' \describe{
|
|
#' \item{\code{grassland}}{Grassland areas}
|
|
#' \item{\code{barren}}{Barren land}
|
|
#' \item{\code{urban_area}}{Urban zones}
|
|
#' \item{\code{farmland}}{Agricultural areas}
|
|
#' \item{\code{forest}}{Forest areas}
|
|
#' \item{\code{scrub}}{Scrubland}
|
|
#' }
|
|
#'
|
|
#' @name protomaps_colors
|
|
#' @seealso \code{\link{pmColors}}, \code{\link{addProtomaps}}
|
|
NULL
|