mapSymbols: Create Map Symbols for 'leaflet' maps

mapSymbolsR Documentation

Create Map Symbols for 'leaflet' maps

Description

Create Map Symbols for 'leaflet' maps

Usage

makeSymbol(
  shape,
  width,
  height = width,
  color,
  fillColor = color,
  opacity = 1,
  fillOpacity = opacity,
  label = NULL,
  ...
)

makeSvgUri(svg, width, height, strokeWidth)

makeSymbolIcons(
  shape,
  color,
  fillColor = color,
  opacity,
  fillOpacity = opacity,
  strokeWidth = 1,
  width,
  height = width,
  label = NULL,
  ...
)

addSymbols(
  map,
  lng,
  lat,
  values,
  shape,
  color,
  fillColor = color,
  opacity = 1,
  fillOpacity = opacity,
  strokeWidth = 1,
  width = 20,
  height = width,
  dashArray = NULL,
  label = NULL,
  data = leaflet::getMapData(map),
  ...
)

addSymbolsSize(
  map,
  lng,
  lat,
  values,
  shape,
  color,
  fillColor = color,
  opacity = 1,
  fillOpacity = opacity,
  strokeWidth = 1,
  baseSize = 20,
  minSize = NULL,
  maxSize = NULL,
  data = leaflet::getMapData(map),
  ...
)

sizeNumeric(
  values,
  baseSize,
  minSize = NULL,
  maxSize = NULL,
  centerPoint = mean(values, na.rm = TRUE)
)

sizeBreaks(values, breaks, baseSize, minSize = NULL, maxSize = NULL, ...)

makeSymbolsSize(
  values,
  shape = "rect",
  color,
  fillColor,
  opacity = 1,
  fillOpacity = opacity,
  strokeWidth = 1,
  baseSize,
  minSize = NULL,
  maxSize = NULL,
  ...
)

Arguments

shape

the desired shape of the symbol, See availableShapes

width

in pixels

height

in pixels

color

stroke color

fillColor

fill color

opacity

stroke opacity

fillOpacity

fill opacity

label

a character vector of labels to display at the center of each symbol

...

arguments to pass to pretty

svg

inner svg tags for symbol

strokeWidth

stroke width in pixels

map

a map widget object created from 'leaflet'

lng

a numeric vector of longitudes, or a one-sided formula of the form ~x where x is a variable in data; by default (if not explicitly provided), it will be automatically inferred from data by looking for a column named lng, long, or longitude (case-insensitively)

lat

a vector of latitudes or a formula (similar to the lng argument; the names lat and latitude are used when guessing the latitude column from data)

values

the values used to generate shapes; can be omitted for a single type of shape

dashArray

a string or vector/list of strings that defines the stroke dash pattern

data

the data object from which the argument values are derived; by default, it is the data object provided to leaflet() initially, but can be overridden

baseSize

re-scaling size in pixels of the mean of the values, the average value will be this exact size

minSize

minimum size in pixels of a symbol; values that would scale below this are clamped to minSize; baseSize must be greater than minSize

maxSize

maximum size in pixels of a symbol; values that would scale above this are clamped to maxSize; baseSize must be less than maxSize

centerPoint

the value used as the center of the scaling; defaults to the mean of values; the symbol for centerPoint will be exactly baseSize pixels

breaks

an integer specifying the number of breaks or a numeric vector of the breaks; if a named vector then the names are used as labels.

Value

HTML svg element

Examples

library(leaflet)
data(quakes)

# symbol with a label centered inside
makeSymbol('circle', width = 24, color = 'black', fillColor = 'steelblue',
           fillOpacity = 0.8, label = 'A')

# map markers with per-point labels
quakes$label <- as.character(seq_len(nrow(quakes)))
leaflet(quakes[1:20, ]) %>%
  addTiles() %>%
  addSymbols(lat = ~lat, lng = ~long, color = 'black',
             fillColor = 'steelblue', fillOpacity = 0.8,
             label = ~label)


leaflegend documentation built on May 16, 2026, 9:06 a.m.