explodemap 0.2.0
New features
- Added a three-level grouped layout engine via
explode_grouped(), supporting "auto",
"auto_collision", and "manual" anchor modes
for multi-region and national-scale layouts.
- Added
layout_regions() to compute region anchors as a
standalone step for custom grouped-layout workflows.
- Added
estimate_block_radii() to estimate per-region
block radii using the 85th percentile of unit-to-centroid
distances.
- Added
export_topojson() for optional TopoJSON export
via the external mapshaper CLI tool, for downstream tools
such as Power BI.
- Added
summary.grouped_exploded_map() for grouped-layout
diagnostics, including local displacement parameters, anchor parameters,
and block radii.
- Added optional bounded collision refinement to
explode_sf() and explode_state() for dense
municipal cores, with diagnostics stored in the returned
refinement component.
- Added
explode_section() for drill-down dashboards that
explode one selected section while keeping the remaining geography as
faded or hidden context for focus_map().
Improvements
- Centroid handling was refactored throughout the package to avoid
sf attribute warnings during centroid calculations.
compute_stats() now accepts centroid_fun
so geometry statistics and displacement use the same centroid
semantics.
explode_sf() and explode_state() now
respect partial manual overrides: users may set only
alpha_r or only alpha_l while deriving the
other parameter from geometry.
- Direction vectors and distance scaling now handle true zero-distance
cases without suppressing sub-metre coordinate differences.
- Grouped anchor collision refinement is now deterministic for
coincident anchors, improving reproducibility.
- Manual grouped anchors now validate that every region has one anchor
and that regions are not duplicated in the anchor table.
- Grouped objects now inherit from both
grouped_exploded_map and exploded_map,
improving method consistency.
- Grouped S3 methods were consolidated and cleaned up for more
consistent printing, plotting, and summary output.
- Distance formatting in diagnostic output now adapts between metres
and kilometres, improving readability for both small synthetic examples
and real-world datasets.
- Focus maps now support non-blocking info cards, selected-area sizing
controls, and denser-layer performance tuning for Shiny workflows.
- Focus maps now support named
group_palette values,
allowing Shiny apps to align widget colouring with dashboard legends or
domain-specific palettes.
- Focus maps now support context features via
context_col, context_mode,
context_opacity, and context_clickable,
enabling selected-region focus maps with muted background
geography.
- Focus maps now support adaptive tiny-feature focus controls via
min_focus_width, min_focus_height,
tiny_feature_threshold, and
tiny_feature_boost, improving municipal drill-down maps
with very small selected polygons.
- Focus maps now support selected-feature origin context via
origin_context and origin_context_position,
including an overview inset that keeps small municipal focus views
anchored to the broader geography. The cue is opt-in by default.
- Focus maps now expose
focus_context_opacity to tune how
strongly the non-selected background geography recedes during focused
views.
- Focus maps now support opt-in drag zoom via
show_drag_zoom. Users can use the button or Shift-drag to
draw a marquee rectangle and smoothly zoom into dense clusters before
selecting individual features.
- Drag zoom behaves as a navigation layer over focus maps: plain
clicks still focus polygons while the toggle is active, and turning the
tool off no longer resets the current focus.
explode_grouped() now accepts visual aliases
(anchor_expand, anchor_buffer,
density_scale, and block_sep) for the
corresponding grouped-layout solver controls.
- Shiny workflows now have quieter geometry builders, automatic plot
suppression safeguards, and selection events for linked side
panels.
- Public-facing dashboard examples now show clear Shiny validation
messages for failed boundary downloads, empty data, map-generation
failures, and widget-rendering failures.
- TIGER/Line downloads and TopoJSON export now fail with clearer,
actionable error messages when external services, files, or tools are
unavailable.
validate_input() now returns visibly, making repaired
geometries less fragile in internal workflows.
Documentation
- Added three vignettes: getting started, grouped layouts, and paper
replication.
- Added small installed examples for the basic
sf
workflow, optional collision refinement, lookup-table grouping, and
manual parameter tuning.
- Added a workflow-selection vignette for release-oriented user
guidance.
- Added Shiny-oriented guidance for exploding a visible section while
preserving the rest of the map as context in
focus_map().
- Added an
inst/CITATION entry for academic
citation.
- Added pkgdown site configuration and GitHub Pages support.
explodemap 0.1.0
Initial release
- Added the core two-level displacement engine for exploded-view
cartography of dense administrative boundary data.
- Added three public entry points:
explode_sf(),
explode_sf_with_lookup(), and
explode_state().
- Added analytical parameter derivation via
derive_params(), implementing Analytical Results 1 and
2.
- Added geometry statistics via
compute_stats().
- Added the
exploded_map S3 class with
print(), plot(), and summary()
methods.
- Added
calibration_row() for cross-dataset calibration
tables.
- Added TIGER/Line download and caching support via
explode_state().
- Added a state registry with New Jersey, Pennsylvania, Ohio, and New
York configurations.
- Added example workflows for cross-state calibration, Canada
validation, and HHS grouped layouts.