startNavigation method

Future startNavigation({
  1. required List<WayPoint> wayPoints,
  2. required VTMapOptions options,
})

Implementation

Future startNavigation(
    {required List<WayPoint> wayPoints,
    required VTMapOptions options}) async {
  assert(wayPoints != null);
  assert(wayPoints.length > 1);

  List<Map<String, Object?>> pointList = <Map<String, Object>>[];

  for (int i = 0; i < wayPoints.length; i++) {
    var wayPoint = wayPoints[i];
    assert(wayPoint != null);
    assert(wayPoint.name != null);
    assert(wayPoint.latitude != null);
    assert(wayPoint.longitude != null);

    final pointMap = <String, dynamic>{
      "Order": i,
      "Name": wayPoint.name,
      "Latitude": wayPoint.latitude,
      "Longitude": wayPoint.longitude,
    };
    pointList.add(pointMap);
  }
  var i = 0;
  var wayPointMap =
      Map.fromIterable(pointList, key: (e) => i++, value: (e) => e);

  var args = options.toMap();
  args["wayPoints"] = wayPointMap;
  if (args["mode"] == null) {
    args["mode"] = VTMapNavigationMode.driving;
  }

  await MapboxGlPlatform.getInstance(_id)!.startNavigation(args);
}