Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 6,
fig.height = 4
)
## ----setup, fig.alt="A base map of North Carolina with grey fill and minimal theme."----
library(ggplot2)
library(sf)
library(ggmapcn)
# Load example data
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
# Create a base map object
base_geo <- ggplot() +
geom_sf(data = nc, fill = "grey90", color = "grey40") +
theme_minimal()
base_geo
## ----proj_scale, fig.alt="Two maps of North Carolina. The first shows a scale bar in the bottom left. The second shows a wider scale bar in the top right."----
base_proj <- base_geo +
coord_sf(crs = 32617) +
theme(axis.title = element_blank())
# Default scale bar at bottom-left
base_proj +
annotation_scalebar(location = "bl")
# Top-right scale bar with custom width hint
base_proj +
annotation_scalebar(
location = "tr",
width_hint = 0.5
)
## ----styles_1, fig.alt="A map showing the 'segment' style scale bar."---------
# 1. Segment style
p_segment <- base_proj +
annotation_scalebar(
location = "bl",
style = "segment",
label_show = "all"
)
p_segment
## ----styles_2, fig.alt="A map showing the 'ticks' style scale bar."-----------
# 2. Ticks style
p_ticks <- base_proj +
annotation_scalebar(
location = "br",
style = "ticks"
)
p_ticks
## ----styles_3, fig.alt="A map showing the 'bar' style scale bar with black and white blocks."----
# 3. Bar style with custom colors
p_bar <- base_proj +
annotation_scalebar(
location = "tl",
style = "bar",
bar_cols = c("black", "white")
)
p_bar
## ----styles_custom, fig.alt="A map with a red scale bar fixed to 100km length."----
base_proj +
annotation_scalebar(
location = "bl",
fixed_width = 100000, # 100 km in meters
display_unit = "km",
line_col = "red"
)
## ----geo_mode, fig.alt="Two maps comparing scale bars. One shows distance in kilometers, the other in degrees."----
# Approximate meters
base_geo +
coord_sf(crs = 4326) +
annotation_scalebar(
location = "bl",
geographic_mode = "approx_m"
)
# Degrees
base_geo +
coord_sf(crs = 4326) +
annotation_scalebar(
location = "bl",
geographic_mode = "degrees"
)
## ----compass_basic, fig.alt="Two maps showing basic north arrows. One is standard size, the other is larger with padding."----
# Default classic arrow
base_geo +
annotation_compass(
location = "tl",
style = north_arrow_classic()
)
# Custom size and padding
base_geo +
annotation_compass(
location = "tl",
height = grid::unit(0.8, "cm"),
width = grid::unit(0.8, "cm"),
pad_x = grid::unit(0.3, "cm"),
pad_y = grid::unit(0.3, "cm")
)
## ----true_north, fig.alt="Two maps demonstrating north arrows. The first shows a rotated compass rose pointing to True North. The second shows a manually rotated Grid North arrow."----
# Define a Lambert Conformal Conic projection
base_lcc <- base_geo +
coord_sf(crs = "+proj=lcc +lon_0=-100 +lat_1=33 +lat_2=45") +
theme(axis.title = element_blank())
# True North (automatically rotated)
base_lcc +
annotation_compass(
which_north = "true",
location = "br",
style = compass_rose_simple()
)
# Grid North with manual rotation
base_lcc +
annotation_compass(
which_north = "grid",
rotation = 30,
location = "tr",
style = north_arrow_solid()
)
## ----compass_styles, fig.alt="Three maps showing different compass styles: Classic, Rose, and Sinan (Si Nan)."----
p_classic <- base_proj +
annotation_compass(
location = "tl",
style = north_arrow_classic()
)
p_rose <- base_proj +
annotation_compass(
location = "br",
style = compass_rose_classic()
)
p_sinan <- base_proj +
annotation_compass(
location = "tl",
style = compass_sinan()
)
p_classic
p_rose
p_sinan
## ----combine, fig.alt="A final map combining a ticks-style scale bar at the bottom left and a compass rose at the top left."----
base_proj +
annotation_scalebar(
location = "bl",
style = "ticks",
width_hint = 0.3
) +
annotation_compass(
location = "tl",
style = compass_rose_circle()
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.