routing_engine library

Engine-agnostic routing interface with OSRM and Valhalla implementations.

Provides an abstract RoutingEngine interface that decouples routing consumers from specific engine implementations. Includes two concrete engines:

  • OsrmRoutingEngine: Sub-frame latency, optimised for real-time rerouting; localizes instructions client-side per RouteRequest.language (Japanese — the default — natively; unknown locales degrade to the engine's English)
  • ValhallaRoutingEngine: Multi-modal routing, isochrones; localizes server-side by forwarding RouteRequest.language
import 'package:routing_engine/routing_engine.dart';

final engine = OsrmRoutingEngine(
  baseUrl: 'https://router.project-osrm.org',
);

final route = await engine.calculateRoute(RouteRequest(
  origin: LatLng(35.17, 136.88),
  destination: LatLng(34.97, 137.17),
));

print('${route.totalDistanceKm} km, ${route.maneuvers.length} steps');

Classes

EngineInfo
Which routing engine produced this result.
OsrmRoutingEngine
RouteManeuver
A single maneuver step along a route.
RouteRequest
Parameters for a route request — engine-agnostic.
RouteResult
A complete route result — engine-agnostic.
RoutingEngine
ValhallaRoutingEngine

Exceptions / Errors

RoutingException