The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

dragmapr lets you drag map regions into any layout you
want, then save that layout as a reproducible image. Open a draggable
map in your browser, move regions and labels around until things look
right, download two small CSV files, and turn them into a
publication-ready ggplot2 map.
Watch a short walkthrough in the dragmap demo vignette, or see the HHS placeholder shapes demo for a complete Spatial Studio workflow.
# install.packages("pak")
pak::pak("PrigasG/dragmapr")library(dragmapr)
# Step 1: open the interactive map in your browser and drag things around
drag_map_prototype(my_sf, region_col = "region", open = TRUE)
# Step 2: after downloading the offset CSVs, render a static image
render_dragged_map(
my_sf,
region_col = "region",
region_offsets = "drag_region_offsets.csv",
label_offsets = "drag_label_offsets.csv",
file = "my-map.png"
)If your data is in longitude/latitude, run
prepare_dragmapr_sf() first:
my_sf <- prepare_dragmapr_sf(my_sf)sf object and pick a column that
groups your regions.drag_map_prototype() to open a browser page — drag
regions and labels wherever you like.render_dragged_map() with those CSVs to get a
static ggplot2 image anytime, without re-running a browser
session.If you used Spatial Studio, you can skip steps 3–4 and call
render_dragmapr_project() with the project ZIP instead:
render_dragmapr_project(
"dragmapr-project.zip",
file = "final-map.png",
width = 10, height = 8, dpi = 300
)Labels are optional. You can show one label per region, supply your own label table, or turn labels off entirely.
# One label per region (default)
drag_map_prototype(my_sf, "region")
# Text-only labels, no marker
drag_map_prototype(my_sf, "region", label_marker = FALSE)
# Circle markers instead of rectangles
drag_map_prototype(my_sf, "region", label_marker_shape = "circle")For longer notes or callout boxes, use
as_drag_annotations():
notes <- as_drag_annotations(data.frame(
label_id = "north-note",
region = "North",
label = "A note about this region",
x = 50000, y = 150000
), connector = TRUE, connector_type = "curve")
render_dragged_map(my_sf, "region",
region_offsets = "drag_region_offsets.csv",
labels = notes,
label_offsets = "drag_label_offsets.csv",
connector_endpoint = "arrow",
file = "annotated-map.png"
)Connector styles: "straight", "elbow",
"curve", "squiggle". Endpoints:
"none" or "arrow".
After installing, go to Addins > Launch dragmapr
in RStudio. Pick your sf object, choose columns and
styling, drag the layout, then click Done. The addin
saves region_offsets and label_offsets to
.GlobalEnv so you can pass them straight to
render_dragged_map().
# Load your sf object first, then launch the addin
regions <- prepare_dragmapr_sf(sf::st_read("regions.shp", quiet = TRUE))
dragmapr_addin()
render_dragged_map(regions, region_col = "name",
region_offsets = region_offsets,
label_offsets = label_offsets,
file = "map.png"
)Run any example to see the package in action without needing your own data:
basic_draggable_map.R — four simple map regionsexplodemap_hhs_labels.R — HHS-style exploded layout
with colors and offsetslabel_nudging.R — nudge labels independently after
moving regionsshiny_draggable_export.R — Shiny app with live preview
and PNG exportshiny_spatial_studio.R — full Spatial Studio: upload
files, switch groupings, drag, exportbranch-bloom-tester.R — test parent/child bloom
animations in isolation# Run all examples in a temp folder
source(system.file("examples", "smoke_examples.R", package = "dragmapr"))Need an export format not available in Spatial Studio? Download the GeoJSON or GeoPackage and open it in Mapshaper to convert.
prepare_dragmapr_sf() to convert longitude/latitude data
before dragging.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.