From 2396207efd53d5cd1478dff510f344de3b5d22ca Mon Sep 17 00:00:00 2001
From: Sara <sarasdj@stud.ntnu.no>
Date: Mon, 19 Feb 2024 15:33:59 +0100
Subject: [PATCH] update: move map to separate file

---
 app/lib/pages/widgets/map_widget.dart | 33 +++------------------------
 app/lib/pages/widgets/osm_map.dart    |  9 ++++++--
 2 files changed, 10 insertions(+), 32 deletions(-)

diff --git a/app/lib/pages/widgets/map_widget.dart b/app/lib/pages/widgets/map_widget.dart
index 4379bbd6..5d5d154e 100644
--- a/app/lib/pages/widgets/map_widget.dart
+++ b/app/lib/pages/widgets/map_widget.dart
@@ -5,6 +5,7 @@ import 'package:flutter_map/flutter_map.dart';
 import 'package:latlong2/latlong.dart';
 import 'quick_view_chart.dart';
 import 'stat_charts.dart';
+import 'osm_map.dart';
 
 class MapContainerWidget extends StatefulWidget {
   final List<Measurement> markerList;
@@ -36,40 +37,12 @@ class _MapContainerWidgetState extends State<MapContainerWidget> {
             const SizedBox(height: contPadding),
             ClipRRect(
               borderRadius: BorderRadius.circular(20),
-              child: Stack( // Stack quick view on top of map
+              child: Stack( // Stack of quick view, map layer, satellite layer, and buttons
                 children: [
                   SizedBox(
                     width: screenWidth * boxWidth,
                     height: screenWidth * boxHeight,
-                    child: FlutterMap(
-                      options: MapOptions(
-                        center: mapCenter, // From consts
-                        zoom: 9.0,
-                      ),
-                      children: [
-                        TileLayer( // Map from OpenStreetMap
-                          urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
-                          subdomains: const ['a', 'b', 'c'],
-                        ),
-                        PolygonLayer( // Map each element in markerList to Measurement object
-                          polygons: widget.markerList.map((Measurement measurement) {
-                            return Polygon(
-                              points: measurement.cornerList.map((Corner corner) {
-                                // Map corner coordinates to LatLng objects
-                                return LatLng(corner.latitude, corner.longitude);
-                              }).toList(),
-                              /*onTap: () {
-                                setState(() {
-                                  selectedMarker = measurement;
-                                });
-                              },*/
-                              color: Colors.blue,
-                              isFilled: true,
-                            );
-                          }).toList(),
-                        )
-                      ],
-                    ),
+                    child: OSMmap(markerList: widget.markerList), // OpenStreetMap layer
                   ),
                   Positioned( // Quick view box layered over map
                     bottom: 10,
diff --git a/app/lib/pages/widgets/osm_map.dart b/app/lib/pages/widgets/osm_map.dart
index ff89b371..46174748 100644
--- a/app/lib/pages/widgets/osm_map.dart
+++ b/app/lib/pages/widgets/osm_map.dart
@@ -5,7 +5,12 @@ import 'package:flutter_map/flutter_map.dart';
 import 'package:latlong2/latlong.dart';
 
 class OSMmap extends StatelessWidget {
-  const OSMmap({super.key});
+  final List<Measurement> markerList;
+
+  const OSMmap({
+    Key? key,
+    required this.markerList,
+  }) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
@@ -20,7 +25,7 @@ class OSMmap extends StatelessWidget {
           subdomains: const ['a', 'b', 'c'],
         ),
         PolygonLayer( // Map each element in markerList to Measurement object
-          polygons: widget.markerList.map((Measurement measurement) {
+          polygons: markerList.map((Measurement measurement) {
             return Polygon(
               points: measurement.cornerList.map((Corner corner) {
                 // Map corner coordinates to LatLng objects
-- 
GitLab