routing_engine 0.1.2 copy "routing_engine: ^0.1.2" to clipboard
routing_engine: ^0.1.2 copied to clipboard

Engine-agnostic routing interface with OSRM and Valhalla implementations. Supports local and public routing servers, offline routing via local Valhalla. Abstract RoutingEngine, RouteResult model, and [...]

example/main.dart

import 'package:latlong2/latlong.dart';
import 'package:routing_engine/routing_engine.dart';

void main() async {
  final engine = ExampleRoutingEngine();
  final request = const RouteRequest(
    origin: LatLng(35.1709, 136.9066),
    destination: LatLng(34.9551, 137.1771),
  );

  if (await engine.isAvailable()) {
    final route = await engine.calculateRoute(request);
    print(route.summary);
    print('distance: ${route.totalDistanceKm}km');
    print('maneuvers: ${route.maneuvers.length}');
    print('engine: ${route.engineInfo.name}');
  }

  await engine.dispose();
}

class ExampleRoutingEngine implements RoutingEngine {
  @override
  EngineInfo get info => const EngineInfo(
        name: 'example-engine',
        version: '0.1.0',
        queryLatency: Duration(milliseconds: 6),
      );

  @override
  Future<RouteResult> calculateRoute(RouteRequest request) async {
    return RouteResult(
      shape: [request.origin, request.destination],
      maneuvers: [
        RouteManeuver(
          index: 0,
          instruction: 'Depart from Sakae Station',
          type: 'depart',
          lengthKm: 0.0,
          timeSeconds: 0.0,
          position: request.origin,
        ),
        RouteManeuver(
          index: 1,
          instruction: 'Arrive at Higashiokazaki Station',
          type: 'arrive',
          lengthKm: 38.7,
          timeSeconds: 2860,
          position: request.destination,
        ),
      ],
      totalDistanceKm: 38.7,
      totalTimeSeconds: 2860,
      summary: 'Example route from ${request.origin} to ${request.destination}',
      engineInfo: info,
    );
  }

  @override
  Future<void> dispose() async {}

  @override
  Future<bool> isAvailable() async => true;
}
0
likes
0
points
498
downloads

Publisher

unverified uploader

Weekly Downloads

Engine-agnostic routing interface with OSRM and Valhalla implementations. Supports local and public routing servers, offline routing via local Valhalla. Abstract RoutingEngine, RouteResult model, and build-time engine selection.

Repository (GitHub)
View/report issues

Topics

#routing #osrm #valhalla #navigation #offline

License

unknown (license)

Dependencies

equatable, http, latlong2

More

Packages that depend on routing_engine