Skip to content

v1.0.1

Choose a tag to compare

@gmpassos gmpassos released this 31 May 03:24
  • Added bump.sh script to run dart_bump with 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 buildGridGraph helper to create synthetic grid graph.
    • Improved example structure and output formatting.
  • lib/src/graph/graph_builder.dart:

    • Rewrote GraphBuilder to 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.
  • 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 findRoutes method 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 lastExpandedNodes property reporting number of expanded vertices in last search.
    • Added internal _penalizedSearch method 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.
  • 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.