RoutePreferences.fromJson constructor
RoutePreferences.fromJson( - Map<String, dynamic> json
)
Implementation
factory RoutePreferences.fromJson(final Map<String, dynamic> json) {
final int routeTypePreferencesInt = json['routetypepreferences'];
final Set<RouteTypePreferences> routeTypePreferences =
<RouteTypePreferences>{};
for (final RouteTypePreferences value in RouteTypePreferences.values) {
if (routeTypePreferencesInt & value.id != 0) {
routeTypePreferences.add(value);
}
}
if (routeTypePreferences.isEmpty) {
routeTypePreferences.add(RouteTypePreferences.none);
}
return RoutePreferences(
accurateTrackMatch: json['accuratetrackmatch'],
algorithmType: PTAlgorithmTypeExtension.fromId(json['algorithmtype']),
allowOnlineCalculation: json['allowonlinecalculation'],
alternativeRoutesBalancedSorting:
json['alternativeroutesbalancedsorting'],
alternativesSchema: RouteAlternativesSchemaExtension.fromId(
json['alternativesschema'],
),
automaticTimestamp: json['automatictimestamp'],
avoidBikingHillFactor: json['avoidbikinghillFactor'],
avoidCarpoolLanes: json['avoidcarpoollanes'],
avoidFerries: json['avoidferries'],
avoidMotorways: json['avoidmotorways'],
avoidTollRoads: json['avoidtollroads'],
avoidTraffic: TrafficAvoidanceExtension.fromId(json['avoidtraffic']),
avoidTurnAroundInstruction: json['avoidturnaroundinstruction'],
avoidUnpavedRoads: json['avoidunpavedroads'],
bikeProfile: BikeProfileElectricBikeProfile.fromJson(json['bikeprofile']),
buildConnections: json['buildconnections'],
buildTerrainProfile: BuildTerrainProfile.fromJson(
json['buildterrainprofile'],
),
carProfile: CarProfile.fromJson(json['carprofile']),
departureHeading: DepartureHeading.fromJson(json['departureheading']),
emergencyVehicleExtraFreedomLevels: json['emergencyVehicleMode']
['extraFreedom'],
emergencyVehicleMode: json['emergencyVehicleMode']['enable'],
evProfile: EVProfile.fromJson(json['evprofile']),
ignoreRestrictionsOverTrack: json['ignorerestrictionsovertrack'],
maximumDistanceConstraint: json['maximumdistanceconstraint'],
maximumTransferTimeInMinutes: json['maximumtransfertimeInminutes'],
maximumWalkDistance: json['maximumwalkdistance'],
minimumTransferTimeInMinutes: json['minimumtransfertimeInminutes'],
pathAlgorithm: RoutePathAlgorithmExtension.fromId(json['pathalgorithm']),
pathAlgorithmFlavor: RoutePathAlgorithmFlavorExtension.fromId(
json['pathalgorithmflavor'],
),
pedestrianProfile: PedestrianProfileExtension.fromId(
json['pedestrianprofile'],
),
resultDetails: RouteResultDetailsExtension.fromId(json['resultdetails']),
routeGroupIdsEarlierLater:
(json['routegroupidsearlierlater'] as List<dynamic>)
.map((final dynamic item) => item as int)
.toList(),
routeRanges: (json['routeranges']['list'] as List<dynamic>)
.map((final dynamic item) => item as int)
.toList(),
routeRangesQuality: json['routeranges']['quality'],
routeResultType: RouteResultTypeExtension.fromId(json['routeresulttype']),
routeType: RouteTypeExtension.fromId(json['routetype']),
routeTypePreferences: routeTypePreferences,
sortingStrategy: PTSortingStrategyExtension.fromId(json['routetype']),
timestamp: json['timestamp'] == null
? null
: DateTime.fromMillisecondsSinceEpoch(
json['timestamp'],
isUtc: true,
),
transportMode: RouteTransportModeExtension.fromId(json['transportmode']),
truckProfile: TruckProfile.fromJson(json['truckprofile']),
useBikes: json['usebikes'],
useWheelchair: json['usewheelchair'],
);
}