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.
explodemap has four main user-facing workflows:
| Goal | Use |
|---|---|
Explode a projected sf object that already has a
grouping column |
explode_sf() |
| Join a lookup table before exploding | explode_sf_with_lookup() |
| Download and explode U.S. county subdivisions by state | explode_state() |
| Separate larger region blocks for national or multi-region layouts | explode_grouped() |
| Add interactive selected-area zoom and information cards | focus_map() |
The best default is usually explode_sf(): prepare a
projected sf object, add a region column, and let the
package derive parameters from the data geometry.
Use explode_sf() when you already have polygon data and
a grouping column:
Use explode_sf_with_lookup() when group membership lives
in a separate table:
result <- explode_sf_with_lookup(
my_sf,
join_col = "GEOID",
lookup = region_lookup,
lookup_key = "geoid",
region_col = "region",
plot = FALSE,
quiet = TRUE
)Use explode_state() when you want the package to
download U.S. Census TIGER/Line county subdivision data for a state:
result <- explode_state(
state_fips = "34",
crs = 32118,
region_map = nj_regions,
plot = FALSE,
quiet = TRUE
)Downloaded data is cached by tigris, so repeated runs
are faster.
The core two-level model is closed-form and deterministic. For very dense municipal cores, you may still see residual crowding after the analytical displacement. In that case, add the optional bounded refinement pass:
result <- explode_sf(
my_sf,
region_col = "region",
refine = TRUE,
refine_min_gap = 250,
refine_max_shift = 150,
plot = FALSE
)Use refine = TRUE as a finishing pass, not as the first
tuning knob. The most important parameter is
refine_max_shift, which caps the extra correction per
feature. Start small and increase only when dense cores still touch or
visually crowd.
The default refine_within = "region" only refines pairs
that share the same parent region. Use
refine_within = "all" when the remaining crowding crosses
region boundaries.
Use explode_grouped() when the map needs an additional
layout level, such as a national map with multiple region blocks:
grouped <- explode_grouped(
my_sf,
region_col = "hhs_region",
mode = "auto_collision",
plot = FALSE,
quiet = TRUE
)The grouped workflow has three modes:
| Mode | Use when |
|---|---|
"auto" |
Radial anchor placement is enough |
"auto_collision" |
Region blocks need collision-aware anchor refinement |
"manual" |
You want to provide anchor coordinates yourself |
Use focus_map() when the goal is exploration in Shiny or
htmlwidgets, not a new static geometry layer. It lets users click or
select a feature, zoom it into a readable viewport target, and show
contextual fields in a non-blocking information card:
focus_map(
result,
group_col = "region",
group_palette = c(North = "#4C78A8", Central = "#F58518", South = "#54A24B"),
info_cols = c("NAME", "GEOID"),
focus_size = 0.76,
focus_padding = 40,
lift_scale = 1.16,
info_card_scale = 1.2
)For Shiny:
ui <- fluidPage(
focusmapOutput("map", height = "700px")
)
server <- function(input, output, session) {
result <- explode_sf(munis, "region", plot = FALSE, quiet = TRUE)
output$map <- renderFocusmap({
focus_map(
result,
label_col = "NAME",
id_col = "GEOID",
group_col = "region",
group_palette = c(North = "#4C78A8", Central = "#F58518", South = "#54A24B"),
info_cols = c("GEOID", "population")
)
})
}The Shiny widget publishes selections at
input$map_selected. Use that reactive value to drive side
panels, tables, or linked charts.
For region or category filters, explode_section() can
explode only the selected section while keeping the rest of the layer as
geographic context:
focused <- explode_section(
munis,
section_col = "nj_region",
section = input$region,
region_col = "county_name",
alpha_r = 900,
alpha_l = 600,
plot = FALSE,
quiet = TRUE
)
focus_map(
focused,
label_col = "NAME",
id_col = "GEOID",
context_col = ".explodemap_role",
context_mode = "fade",
context_opacity = 0.16,
performance_mode = TRUE
)This keeps focused sections compact while preserving the full map
outline as context. Use context_mode = "hide" when the
background should be available to the layout but not visible in the
widget.
Before exploding or focusing:
plot = FALSE inside apps or scripts when you only
need returned objects.quiet = TRUE inside app server code to suppress
progress messages.focus_map(performance_mode = TRUE) for dense
municipal layers.eval = FALSE, or inst/examples/, not in
CRAN-running examples.Small local examples:
source(system.file("examples/basic_explode_sf.R", package = "explodemap"))
source(system.file("examples/collision_refinement.R", package = "explodemap"))
source(system.file("examples/lookup_workflow.R", package = "explodemap"))
source(system.file("examples/manual_parameter_tuning.R", package = "explodemap"))Interactive examples that download public data:
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.