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();
}