protomapr/R/layers.R
2026-03-06 15:46:39 +11:00

109 lines
4.3 KiB
R

#' Protomaps Basemap Layers Reference
#'
#' @description
#' Reference documentation for the available layers and properties in the
#' Protomaps basemap. Use these layer names with \code{\link{pmPaintRule}}
#' and \code{\link{pmLabelRule}}, and filter on these properties.
#'
#' @section Layer Names:
#' The following layers are available for styling:
#'
#' \describe{
#' \item{\code{earth}}{Land polygons}
#' \item{\code{water}}{Water polygons, lines, and label points}
#' \item{\code{landuse}}{Parks, forests, residential areas, etc.}
#' \item{\code{roads}}{Streets, highways, paths}
#' \item{\code{buildings}}{Building footprints and addresses}
#' \item{\code{places}}{City, town, and region labels}
#' \item{\code{pois}}{Points of interest}
#' \item{\code{boundaries}}{Administrative boundaries}
#' \item{\code{natural}}{Natural features like peaks, forests}
#' \item{\code{transit}}{Transit stations and lines}
#' }
#'
#' @section Places Layer Properties:
#' Use these in filter expressions like \code{filter = "feature.props.kind === 'locality'"}
#'
#' \describe{
#' \item{\code{kind}}{Place type: "country", "region", "locality", "macrohood", "neighbourhood"}
#' \item{\code{kind_detail}}{Detailed type: "city", "town", "village", "hamlet", "state", "province", "country"}
#' \item{\code{name}}{Place name}
#' \item{\code{population}}{Population count (integer)}
#' \item{\code{population_rank}}{Population rank (integer, higher = larger)}
#' \item{\code{min_zoom}}{Minimum zoom level where label appears (lower = more important)}
#' \item{\code{capital}}{Capital status (string)}
#' \item{\code{wikidata}}{Wikidata ID}
#' }
#'
#' @section Water Layer Properties:
#' \describe{
#' \item{\code{kind}}{Water type: "water", "lake", "playa", "ocean", "other"}
#' \item{\code{kind_detail}}{Detailed type: "basin", "canal", "ditch", "dock", "drain", "lake", "reservoir", "river", "riverbank", "stream"}
#' \item{\code{name}}{Water body name}
#' \item{\code{intermittent}}{Boolean, seasonal water}
#' \item{\code{reservoir}}{Boolean}
#' \item{\code{alkaline}}{Boolean}
#' }
#'
#' @section Roads Layer Properties:
#' \describe{
#' \item{\code{kind}}{Road class: "highway", "major_road", "medium_road", "minor_road", "path"}
#' \item{\code{kind_detail}}{Detailed type: "motorway", "trunk", "primary", "secondary", "tertiary", "residential", "service", "pedestrian", "footway", "cycleway"}
#' \item{\code{ref}}{Road reference number (e.g., "I-80", "US-101")}
#' \item{\code{name}}{Street name}
#' \item{\code{oneway}}{Boolean}
#' \item{\code{is_bridge}}{Boolean}
#' \item{\code{is_tunnel}}{Boolean}
#' }
#'
#' @section Landuse Layer Properties:
#' \describe{
#' \item{\code{kind}}{Land use type: "park", "forest", "residential", "commercial", "industrial", "aerodrome", "cemetery", "hospital", "school", "stadium", "zoo"}
#' \item{\code{sport}}{Sport type for sports facilities}
#' }
#'
#' @section Buildings Layer Properties:
#' \describe{
#' \item{\code{kind}}{Building type: "address", "building", "building_part"}
#' \item{\code{height}}{Building height in meters}
#' \item{\code{min_height}}{Base height for building parts}
#' \item{\code{addr_housenumber}}{Street address number}
#' }
#'
#' @section POIs Layer Properties:
#' \describe{
#' \item{\code{kind}}{POI type: "cafe", "restaurant", "hospital", "school", "bank", "pharmacy", "hotel", etc.}
#' \item{\code{name}}{POI name}
#' \item{\code{cuisine}}{Cuisine type for restaurants}
#' \item{\code{religion}}{Religion for places of worship}
#' }
#'
#' @section Filter Examples:
#' \preformatted{
#' # Major cities only
#' filter = "feature.props.kind_detail === 'city'"
#'
#' # States/provinces
#' filter = "feature.props.kind === 'region'"
#'
#' # Important places (low min_zoom = important)
#' filter = "feature.props.min_zoom <= 6"
#'
#' # Large cities by population rank
#' filter = "feature.props.population_rank >= 10"
#'
#' # Highways only
#' filter = "feature.props.kind === 'highway'"
#'
#' # Parks
#' filter = "feature.props.kind === 'park'"
#'
#' # Combine conditions
#' filter = "feature.props.kind_detail === 'city' && feature.props.min_zoom <= 8"
#' }
#'
#' @name protomaps_layers
#' @aliases layers
#' @seealso \code{\link{pmPaintRule}}, \code{\link{pmLabelRule}}
#' @references \url{https://docs.protomaps.com/basemaps/layers}
NULL