diff --git a/app/lib/data_classes.dart b/app/lib/data_classes.dart index 8de99433b443b8ddcb9f3ed213c34e6496ffa034..a3eebb60315d2da6f1f21e945a1b060ae81133a7 100644 --- a/app/lib/data_classes.dart +++ b/app/lib/data_classes.dart @@ -34,6 +34,7 @@ class Measurement { class SubDiv { String sub_div_id; int groupID; + String group_id; double minThickness; double avgThickness; LatLng center; @@ -44,6 +45,7 @@ class SubDiv { SubDiv({ required this.sub_div_id, required this.groupID, + required this.group_id, required this.minThickness, required this.avgThickness, required this.center, @@ -56,6 +58,7 @@ class SubDiv { return SubDiv( sub_div_id: json['SubdivID'].toString(), groupID: json['GroupID'], + group_id: '', // Initialise empty, will be set later minThickness: json['MinThickness'], avgThickness: json['AvgThickness'], center: LatLng(json['CenLatitude'], json['CenLongitude']), diff --git a/app/lib/widgets/choropleth_map.dart b/app/lib/widgets/choropleth_map.dart index 2ab4eb52757d577b7095eefde673b8a3157e206f..6df3dfb8e4d9d92459bbecadca2d061c147db3b9 100644 --- a/app/lib/widgets/choropleth_map.dart +++ b/app/lib/widgets/choropleth_map.dart @@ -46,24 +46,22 @@ class _ChoroplethMapState extends State<ChoroplethMap> { super.initState(); // Extract all subdivisions from list of measurements for (Measurement measurement in widget.measurements) { + String measurement_id = measurement.measurementID.toString(); for (SubDiv subdivision in measurement.subDivs) { + // Construct concatenated group ID for rendering of groups + subdivision.group_id = measurement_id + "-"+ subdivision.groupID.toString(); + print("Constructued groupID: ${subdivision.group_id}"); subdivisions.add(subdivision); } - }; - - // ?Should the map be pre-divided into groups? - - // Parse relation to json - // Make a list of key value pairs (key: groupID, value: appended shapes) - // Parse back to Uint8list + } // Initialise data source dataSource = MapShapeSource.memory( widget.relation, - shapeDataField: 'sub_div_id', + shapeDataField: 'group_id', dataCount: subdivisions.length, primaryValueMapper: (int index) => - subdivisions[index].sub_div_id, + subdivisions[index].group_id, shapeColorValueMapper: (int index) => subdivisions[index].avgThickness, // NB will later be minThickness, fix in server first shapeColorMappers: const [