getDistance method

dynamic getDistance()

Implementation

getDistance() async {
  List<dynamic> carDistanceList = [];
  List<dynamic> bikeDistanceList = [];
  for (var element in availableDriverList) {
    try {
      Response response = await RouteRF(mapController).GetPolyline(
          AddressRF(
            Name: "pickup",
            Coordinate: CoordinateRF(
              double.parse(pickupLocation.lat),
              double.parse(pickupLocation.lng),
            ),
          ),
          AddressRF(
            Name: "dropoff",
            Coordinate: CoordinateRF(
              element.currentLocationLat,
              element.currentLocationLng,
            ),
          ));
      if (response.body != null) {
        RouteResponse routeResponse =
            RouteResponse.fromJson(json.decode(response.body));
        if (element.vehicleType.toLowerCase() == "bike") {
          bikeDistanceList
              .add(routeResponse.features[0].properties.summary.duration);
        } else {
          carDistanceList
              .add(routeResponse.features[0].properties.summary.duration);
        }
      }
    } catch (e) {
      debugPrint(e.toString());
    }
  }
  bikeDistanceList.sort();
  carDistanceList.sort();
  bikeDuration = (bikeDistanceList.first / 60).ceil().toString();
  carDuration = (carDistanceList.first / 60).ceil().toString();

  vehicleList = [
    VehicleCard(
        isSelected: true,
        image: "assets/motorbike.png",
        name: "Bike",
        distnace: bikeDuration,
        price: 120),
    VehicleCard(
        isSelected: false,
        image: "assets/car.png",
        name: "Car",
        distnace: carDuration,
        price: 220),
  ];
  notifyListeners();
}