add_circle_layer | R Documentation |
Add a circle layer to a Mapbox GL map
add_circle_layer(
map,
id,
source,
source_layer = NULL,
circle_blur = NULL,
circle_color = NULL,
circle_opacity = NULL,
circle_radius = NULL,
circle_sort_key = NULL,
circle_stroke_color = NULL,
circle_stroke_opacity = NULL,
circle_stroke_width = NULL,
circle_translate = NULL,
circle_translate_anchor = "map",
visibility = "visible",
slot = NULL,
min_zoom = NULL,
max_zoom = NULL,
popup = NULL,
tooltip = NULL,
hover_options = NULL,
before_id = NULL,
filter = NULL,
cluster_options = NULL
)
map |
A map object created by the |
id |
A unique ID for the layer. |
source |
The ID of the source, alternatively an sf object (which will be converted to a GeoJSON source) or a named list that specifies |
source_layer |
The source layer (for vector sources). |
circle_blur |
Amount to blur the circle. |
circle_color |
The color of the circle. |
circle_opacity |
The opacity at which the circle will be drawn. |
circle_radius |
Circle radius. |
circle_sort_key |
Sorts features in ascending order based on this value. |
circle_stroke_color |
The color of the circle's stroke. |
circle_stroke_opacity |
The opacity of the circle's stroke. |
circle_stroke_width |
The width of the circle's stroke. |
circle_translate |
The geometry's offset. Values are |
circle_translate_anchor |
Controls the frame of reference for |
visibility |
Whether this layer is displayed. |
slot |
An optional slot for layer order. |
min_zoom |
The minimum zoom level for the layer. |
max_zoom |
The maximum zoom level for the layer. |
popup |
A column name containing information to display in a popup on click. Columns containing HTML will be parsed. |
tooltip |
A column name containing information to display in a tooltip on hover. Columns containing HTML will be parsed. |
hover_options |
A named list of options for highlighting features in the layer on hover. |
before_id |
The name of the layer that this layer appears "before", allowing you to insert layers below other layers in your basemap (e.g. labels). |
filter |
An optional filter expression to subset features in the layer. |
cluster_options |
A list of options for clustering circles, created by the |
The modified map object with the new circle layer added.
## Not run:
library(mapgl)
library(sf)
library(dplyr)
# Set seed for reproducibility
set.seed(1234)
# Define the bounding box for Washington DC (approximately)
bbox <- st_bbox(
c(
xmin = -77.119759,
ymin = 38.791645,
xmax = -76.909393,
ymax = 38.995548
),
crs = st_crs(4326)
)
# Generate 30 random points within the bounding box
random_points <- st_as_sf(
data.frame(
id = 1:30,
lon = runif(30, bbox["xmin"], bbox["xmax"]),
lat = runif(30, bbox["ymin"], bbox["ymax"])
),
coords = c("lon", "lat"),
crs = 4326
)
# Assign random categories
categories <- c("music", "bar", "theatre", "bicycle")
random_points <- random_points %>%
mutate(category = sample(categories, n(), replace = TRUE))
# Map with circle layer
mapboxgl(style = mapbox_style("light")) %>%
fit_bounds(random_points, animate = FALSE) %>%
add_circle_layer(
id = "poi-layer",
source = random_points,
circle_color = match_expr(
"category",
values = c(
"music", "bar", "theatre",
"bicycle"
),
stops = c(
"#1f78b4", "#33a02c",
"#e31a1c", "#ff7f00"
)
),
circle_radius = 8,
circle_stroke_color = "#ffffff",
circle_stroke_width = 2,
circle_opacity = 0.8,
tooltip = "category",
hover_options = list(
circle_radius = 12,
circle_color = "#ffff99"
)
) %>%
add_categorical_legend(
legend_title = "Points of Interest",
values = c("Music", "Bar", "Theatre", "Bicycle"),
colors = c("#1f78b4", "#33a02c", "#e31a1c", "#ff7f00"),
circular_patches = TRUE
)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.