MiniProgramLocationResult.fromJson constructor
MiniProgramLocationResult.fromJson(
- Map<String, dynamic> json
)
Implementation
factory MiniProgramLocationResult.fromJson(Map<String, dynamic> json) {
final latitude = json['latitude'];
final longitude = json['longitude'];
final accuracyMeters = json['accuracyMeters'];
final capturedAtUtc = json['capturedAtUtc'];
final source = json['source'];
if (latitude is! num ||
longitude is! num ||
accuracyMeters is! num ||
capturedAtUtc is! String ||
source is! String) {
throw const FormatException('Invalid mini-program location result.');
}
final capturedAt = DateTime.tryParse(capturedAtUtc);
if (capturedAt == null) {
throw const FormatException(
'Location capturedAtUtc must be an ISO-8601 timestamp.',
);
}
final result = MiniProgramLocationResult(
latitude: latitude.toDouble(),
longitude: longitude.toDouble(),
accuracyMeters: accuracyMeters.toDouble(),
capturedAtUtc: capturedAt,
source: source,
);
result.validate();
return result;
}