From 68799d9e6a55059fc14b3a14aed54b1eeb709cc9 Mon Sep 17 00:00:00 2001
From: Sara <sarasdj@stud.ntnu.no>
Date: Wed, 14 Feb 2024 16:48:06 +0100
Subject: [PATCH] add: polygons instead of markers

---
 app/lib/pages/consts.dart             |  4 +++
 app/lib/pages/widgets/map_widget.dart | 37 ++++++++++++---------------
 2 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/app/lib/pages/consts.dart b/app/lib/pages/consts.dart
index 1b5412ba..c1e12101 100644
--- a/app/lib/pages/consts.dart
+++ b/app/lib/pages/consts.dart
@@ -1,5 +1,6 @@
 import 'package:flutter/material.dart';
 import 'package:google_fonts/google_fonts.dart';
+import 'package:latlong2/latlong.dart';
 
 // API variables
 const String port = "8443";
@@ -7,6 +8,9 @@ const String serverURI = "https://127.0.0.1:$port/";
 const String mapEndpoint = "update_map";
 const int fetchInterval = 60; // Fetch marker data every n minutes
 
+// Map center
+LatLng mapCenter = LatLng(60.7666, 10.8471);
+
 // Font variables
 const textColor = Colors.white;
 final appTitleStyle = GoogleFonts.dmSans(
diff --git a/app/lib/pages/widgets/map_widget.dart b/app/lib/pages/widgets/map_widget.dart
index 30e0754d..8e4dfa20 100644
--- a/app/lib/pages/widgets/map_widget.dart
+++ b/app/lib/pages/widgets/map_widget.dart
@@ -43,7 +43,7 @@ class _MapContainerWidgetState extends State<MapContainerWidget> {
                     height: screenWidth * boxHeight,
                     child: FlutterMap(
                       options: MapOptions(
-                        center: LatLng(60.7666, 10.8471),
+                        center: mapCenter, // From consts
                         zoom: 9.0,
                       ),
                       children: [
@@ -51,28 +51,23 @@ class _MapContainerWidgetState extends State<MapContainerWidget> {
                           urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
                           subdomains: const ['a', 'b', 'c'],
                         ),
-                        MarkerLayer(
-                          markers: widget.markerList.map((Measurement Measurement) {
-                            return Marker(
-                              width: 50,
-                              height: 50,
-                              point: LatLng(Measurement.dataList[0].latitude, Measurement.dataList[0].longitude),
-                              builder: (ctx) => GestureDetector(
-                                onTap: () {
-                                  setState(() {
-                                    selectedMarker = Measurement;
-                                  });
-                                },
-                                child: Image.asset(
-                                  'assets/icons/circle-red.png',
-                                  color: Colors.red,
-                                  width: 50,
-                                  height: 50,
-                                ),
-                              ),
+                        PolygonLayer( // Map each element in markerList to Measurement object
+                          polygons: widget.markerList.map((Measurement measurement) {
+                            return Polygon(
+                              points: measurement.cornerList.map((Corner corner) {
+                                // Match corners to LatLng objects
+                                return LatLng(corner.latitude, corner.longitude);
+                              }).toList(),
+                              /*onTap: () {
+                                setState(() {
+                                  selectedMarker = measurement;
+                                });
+                              },*/
+                              color: Colors.blue,
+                              isFilled: true,
                             );
                           }).toList(),
-                        ),
+                        )
                       ],
                     ),
                   ),
-- 
GitLab