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