Skip to content
Snippets Groups Projects
Select Git revision
  • clhp_map
  • main default
  • Sentinenl_hub_integration
  • connect_data_to_map
  • NveWeatherbasedIntegration
  • lidar_test
  • app2
  • app-sql
  • server
  • app
10 results

data_classes.dart

Blame
  • 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(),