getRoute method

Future<RouteDetails> getRoute(
  1. RaliPosition start,
  2. RaliPosition destination, {
  3. RouteEmphasis emphasis = RouteEmphasis.balanced,
  4. RALINavigationMode mode = RALINavigationMode.default_,
})

//////////// //////////// Retrieves a route between two points with comprehensive options

Implementation

// II.C - Route Retrieval Methods
///////////////
/// Retrieves a route between two points with comprehensive options
Future<RouteDetails> getRoute(
  RaliPosition start,
  RaliPosition destination, {
  RouteEmphasis emphasis = RouteEmphasis.balanced,
  RALINavigationMode mode = RALINavigationMode.default_,
}) async {
  try {
    final url = Uri.https(_baseUrl, '$_routePath/${start.lng},${start.lat};${destination.lng},${destination.lat}', {
      'alternatives': 'true',
      'geometries': 'geojson',
      'overview': 'full',
      'steps': 'true',
      'access_token': accessToken,
      'annotations': _getAnnotationsForMode(mode),
    });

    final response = await http.get(url);

    if (response.statusCode == 200) {
      final routeData = json.decode(response.body);
      return RouteDetails.fromMapboxRoute(routeData);
    } else {
      throw HttpException('Failed to retrieve route: ${response.statusCode}');
    }
  } catch (e) {
    print('Route retrieval error: $e');
    rethrow;
  }
}