NEWS
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.