diff --git a/app/lib/data_classes.dart b/app/lib/data_classes.dart
index 554953821fc25f0973eb109fcc7248c17c896029..c2eae490c3754ae00b81dd2c8a1d382fd5264e10 100644
--- a/app/lib/data_classes.dart
+++ b/app/lib/data_classes.dart
@@ -8,7 +8,7 @@ class Measurement {
   Sensor sensor;
   String bodyOfWater;
   LatLng center;
-  List <SubDiv> subDiv;
+  List <SubDiv> subDivs;
   List <LatLng> corners;
 
   Measurement({
@@ -17,7 +17,7 @@ class Measurement {
     required this.sensor,
     required this.bodyOfWater,
     required this.center,
-    required this.subDiv,
+    required this.subDivs,
     required this.corners,
   });
 
@@ -28,14 +28,14 @@ class Measurement {
         sensor: Sensor.fromJson(json['Sensor']),
         bodyOfWater: json['BodyOfWater'] ?? 'nil',
         center: LatLng(json['CenterLat'], json['CenterLon']),
-        subDiv: (json['Subdivisions'] as List<dynamic>).map((data) => SubDiv.fromJson(data)).toList(),
+        subDivs: (json['Subdivisions'] as List<dynamic>).map((data) => SubDiv.fromJson(data)).toList(),
         corners: (json['Corners'] as List<dynamic>).map((corner) => LatLng(corner[0], corner[1])).toList(),
     );
   }
 }
 
 class SubDiv {
-  int sub_div_id;
+  String sub_div_id;
   int groupID;
   double minThickness;
   double avgThickness;
@@ -57,7 +57,7 @@ class SubDiv {
 
   factory SubDiv.fromJson(Map<String, dynamic> json) {
     return SubDiv(
-      sub_div_id: json['SubdivID'],
+      sub_div_id: json['SubdivID'].toString(),
       groupID: json['GroupID'],
       minThickness: json['MinThickness'],
       avgThickness: json['AvgThickness'],
diff --git a/app/lib/widgets/choropleth_map.dart b/app/lib/widgets/choropleth_map.dart
index 1dd7b7178fedbdd757b5655aa4805cfc6d400a7a..f2e258d2292a469f421ef10b77ed4504eca44f4a 100644
--- a/app/lib/widgets/choropleth_map.dart
+++ b/app/lib/widgets/choropleth_map.dart
@@ -37,27 +37,18 @@ class _ChoroplethMapState extends State<ChoroplethMap> {
   int selectedIndex = -1;
   late MapShapeSource mapShapeSource;
   late final MapZoomPanBehavior _zoomPanBehavior = MapZoomPanBehavior();
-  List<IceThicknessModel> iceThicknessList = <IceThicknessModel>[];
-  List<Color> testColors = [ // NB test color
-    const Color(0xff8a003b),
-    const Color(0xff8a4300),
-    const Color(0xff8a7a00),
-    const Color(0xff538a00),
-    const Color(0xff007b8a),
-  ];
+  List<SubDiv> subdivisions = <SubDiv>[];
+
 
   @override
   void initState() {
     super.initState();
-
-    final Random random = Random();
-    for (int i = 0; i <= 120; i++) {
-      int ran = random.nextInt(5); // NB test color
-      Color randomColor = testColors[ran];
-
-      int randomNumber = random.nextInt(21); // 0 -> 20, NB: temp test data
-      iceThicknessList.add(IceThicknessModel(i.toString(), randomNumber, randomColor, randomColor));
-    }
+    // Create list of all subdivisions
+    for (Measurement measurement in widget.measurements) {
+      for (SubDiv subdivision in measurement.subDivs) {
+        subdivisions.add(subdivision);
+      }
+    };
   }
 
   @override
@@ -70,9 +61,9 @@ class _ChoroplethMapState extends State<ChoroplethMap> {
               source: MapShapeSource.memory( // Map polygon
                 widget.relation, // JSON coordinates from server
                 shapeDataField: 'sub_div_id',
-                dataCount: iceThicknessList.length,
-                primaryValueMapper: (int index) => iceThicknessList[index].sub_div_id,
-                shapeColorValueMapper: (int index) => iceThicknessList[index].color,
+                dataCount: widget.measurements.length,
+                primaryValueMapper: (int index) => subdivisions[index].sub_div_id,
+                shapeColorValueMapper: (int index) => subdivisions[index].color,
               ),
               //color: Colors.blue.shade400, // Map color
               zoomPanBehavior: _zoomPanBehavior,
@@ -82,8 +73,8 @@ class _ChoroplethMapState extends State<ChoroplethMap> {
               onSelectionChanged: (int index) {
                 setState(() {
                   selectedIndex = index;
-                  for (int i = 0; i < iceThicknessList.length; i++) {
-                    iceThicknessList[i].color = i == index ? Colors.red : iceThicknessList[i].savedColor;
+                  for (int i = 0; i < subdivisions.length; i++) {
+                    subdivisions[i].color = i == index ? Colors.red : subdivisions[i].savedColor;
                   }
                 });
                 widget.onSelectionChanged(selectedIndex);