Skip to content

Route statistics#439

Open
karussell wants to merge 30 commits intomasterfrom
route_stats
Open

Route statistics#439
karussell wants to merge 30 commits intomasterfrom
route_stats

Conversation

@karussell
Copy link
Member

@karussell karussell commented Feb 28, 2026

More insights into routes, especially bike routes is very valuable.

Especially when tuning them. And so I always wanted to create some statistic overview per route. And as this is not only useful for developers but also for users I thought I would integrate it directly in GH Maps (click "Details").

Try it here.

image

TODO

  • adapt color in heightgraph (Elevation widget #440)
  • separate incline + decline (for now keep it simple and combined)

karussell and others added 12 commits February 27, 2026 21:54
Lift isExpanded state from RoutingResult to parent RoutingResults
component so it survives when child components re-mount after adding
via points or recalculating routes. Also use stable path-derived keys
instead of array indices for React reconciliation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@karussell karussell added the enhancement New feature or request label Feb 28, 2026
@ratrun
Copy link
Contributor

ratrun commented Feb 28, 2026

This is awesome! 🎂

@ratrun
Copy link
Contributor

ratrun commented Feb 28, 2026

Just one minor thing to make it production ready:

Bildschirmfoto vom 2026-02-28 14-32-22

Would it be possible to use the same colors in the left statistics and in the Legend? It seems the statistics colors are manually tuned, so these should also be used in the Legend.

karussell and others added 12 commits March 4, 2026 13:43
Mostly micro-optimizations:
- ElevationInfoBar: throttle hover dispatches to once per animation frame
- ChartRenderer: skip resize when dimensions unchanged
- ElevationWidget: floor fractional ResizeObserver widths; add touch handlers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Return same state reference in PathDetailsStore when SetActiveDetail
dispatches the same detail. Without this, the spread operator creates a
new object every time, which passes Store's reference equality check and
triggers a re-render loop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@karussell karussell added this to the 0.9 milestone Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants