v1.0.1
-
Added
bump.shscript to rundart_bumpwith API key and arguments. -
example/geo_route_finder_example.dart:- Added comprehensive example supporting two flows:
- Synthetic 10x10 grid routing demo with Dijkstra, A*, and Contraction Hierarchies.
- Real OpenStreetMap routing demo triggered by command-line arguments.
- Added detailed printing of route distances, durations, and expanded nodes.
- Added
buildGridGraphhelper to create synthetic grid graph. - Improved example structure and output formatting.
- Added comprehensive example supporting two flows:
-
lib/src/graph/graph_builder.dart:- Rewrote
GraphBuilderto use flat primitive arrays and stable sorting for deterministic CSR graph building. - Added efficient geometry resolution and edge permutation sorting by source, target, and distance.
- Removed object allocations for edges and coordinates during build.
- Rewrote
-
lib/src/osm/osm_downloader.dart:- Added deterministic, collision-free file naming for downloaded OSM regions based on region and source id.
- Improved download caching and file naming logic.
-
lib/src/routing/astar_router.dart:- Added tracking and reporting of expanded nodes count during A* search.
-
lib/src/routing/contraction_hierarchy.dart:- Added tracking and reporting of expanded nodes count during bidirectional CH search.
-
lib/src/routing/dijkstra_router.dart:- Added tracking and reporting of expanded nodes count during Dijkstra search.
-
lib/src/routing/route_finder.dart:- Added
findRoutesmethod to compute multiple alternative routes with parameters:maxRoutes,maxExtraRatio,maxExtraMeters,maxSharing.
- Implemented iterative penalty-based alternative route search using Dijkstra on penalized edge weights.
- Added
lastExpandedNodesproperty reporting number of expanded vertices in last search. - Added internal
_penalizedSearchmethod for alternative route discovery. - Added route building from raw paths with geometry stitching.
- Added graph compression on generic load path to reduce degree-2 chains.
- Added
-
lib/src/spatial/kd_tree.dart:- Precompute projected vertex coordinates in meters for faster KD-tree build and queries.
- Use cached projected coordinates in comparisons and distance calculations.
-
test/osm_route_finder_test.dart:- Updated test step numbering to reflect added load step.
- Added output of nodes analyzed during routing.
- Improved test output formatting.
-
test/routing_test.dart:- Added comprehensive tests exercising all three router algorithms (Dijkstra, A*, CH) across generic and compiled storage backends.
- Verified identical optimal distances and durations across algorithms and backends.
- Tested route geometry continuity and correctness.
- Tested reporting of expanded nodes count.
- Added tests for alternative routes with parameters and distinctness.
- Tested unreachable targets and one-way restrictions across all algorithms.
- Verified graph compression behavior and equivalence of compressed vs uncompressed compiled graphs.
- Verified equivalence of generic and compiled load paths routing between surviving vertices.