getOSRMRoad method
Implementation
Future<OSRMRoad> getOSRMRoad(OSRMRequest request) async {
final urlOption = request.encodeHeader();
final response = await dio.get(dio.options.baseUrl + urlOption);
final Map<String, dynamic> responseJson = Map.from(response.data);
if (response.statusCode != null && response.statusCode! > 299 ||
response.statusCode! < 200) {
return OSRMRoad.withError();
}
final instructionsHelper = loadInstructionHelperJson(
language: request.languages,
);
final data = (
json: responseJson,
request: request,
helper: instructionsHelper,
);
final route = await switch (data.request.profile) {
Profile.route => parseRoad(
ParserRoadComputeArg(
json: data.json,
langCode: data.request.languages.code,
alternative: request.hasAlternative ?? false,
),
),
Profile.trip => parseTrip(
ParserTripComputeArg(
tripJson: data.json,
langCode: data.request.languages.code,
),
),
};
final instructions = OSRMHelper.buildInstructions(
road: route,
instructionsHelper: data.helper,
);
return route.copyWith(instructions: instructions);
}