parseRoad function
this method used to parse json get it from route service to Road object
we use this method in another thread like compute
the data is ParserRoadComputeArg that will to be parsed to Road
fix parsing problem #1
return Road object that contain list of waypoint
and distance and duration of the road
Implementation
Future<OSRMRoad> parseRoad(ParserRoadComputeArg data) async {
Map<String, dynamic> jsonResponse = data.json;
bool alternative = data.alternative;
final List<Map<String, dynamic>> routes = List.castFrom(jsonResponse["routes"]);
final route = routes.first;
final road = OSRMRoad.fromOSRMJson(route: route);
if (routes.length > 1 && alternative) {
routes.removeAt(0);
for (var route in routes) {
final alternative = OSRMRoad.fromOSRMJson(route: route);
road.addAlternativeRoute(alternative);
}
}
return road;
}