Select Git revision
data_classes.dart
-
Sara Savanovic Djordjevic authoredSara Savanovic Djordjevic authored
data_classes.dart 4.65 KiB
import 'dart:core';
import 'package:latlong2/latlong.dart';
import 'package:flutter/material.dart';
class Measurement {
int measurementID;
DateTime timeMeasured;
Sensor sensor;
String bodyOfWater;
LatLng center;
List <SubDiv> subDivs;
Measurement({
required this.measurementID,
required this.timeMeasured,
required this.sensor,
required this.bodyOfWater,
required this.center,
required this.subDivs,
});
factory Measurement.fromJson(Map<String, dynamic> json) {
try {
return Measurement(
measurementID: json['MeasurementID'] ?? 0,
timeMeasured: json['TimeMeasured'] != null
? DateTime.parse(json['TimeMeasured'])
: DateTime(0),
sensor:json['Sensor'] != null
? Sensor.fromJson(json['Sensor'])
: Sensor.empty(),
bodyOfWater: json['BodyOfWater'] != null ? json['BodyOfWater'].toString() : 'nil',
center: LatLng(
json['CenterLat'] != null ? json['CenterLat'].toDouble() : 0.0,
json['CenterLon'] != null ? json['CenterLon'].toDouble() : 0.0,
),
subDivs: (json['Subdivisions'] as List<dynamic>).map((data) => SubDiv.fromJson(data)).toList(),
);
} catch (e) {
throw FormatException('Error parsing Measurement: $e');
}
}
}
class SubDiv {
String sub_div_id;
int groupID;
double minThickness;
double avgThickness;
LatLng center;
int accuracy;
int color;
List<IceStats> iceStats;
SubDiv({
required this.sub_div_id,
required this.groupID,
required this.minThickness,
required this.avgThickness,
required this.center,
required this.accuracy,
required this.color,
required this.iceStats,
});
factory SubDiv.fromJson(Map<String, dynamic> json) {
try {
return SubDiv(
sub_div_id: json['SubdivID'].toString(),