From 93d62e1ddd17be5d1cb0776fd7459117e1566904 Mon Sep 17 00:00:00 2001 From: Sara <sarasdj@stud.ntnu.no> Date: Mon, 19 Feb 2024 13:48:21 +0100 Subject: [PATCH] add: osm_map.dart and sat_layer.dart --- app/lib/pages/widgets/map_widget.dart | 5 ++-- app/lib/pages/widgets/osm_map.dart | 42 +++++++++++++++++++++++++++ app/lib/pages/widgets/sat_layer.dart | 0 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 app/lib/pages/widgets/osm_map.dart create mode 100644 app/lib/pages/widgets/sat_layer.dart diff --git a/app/lib/pages/widgets/map_widget.dart b/app/lib/pages/widgets/map_widget.dart index b8708dc6..4379bbd6 100644 --- a/app/lib/pages/widgets/map_widget.dart +++ b/app/lib/pages/widgets/map_widget.dart @@ -3,7 +3,6 @@ import '../marker_handler/marker_data.dart'; import '../consts.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:latlong2/latlong.dart'; -import 'package:fl_chart/fl_chart.dart'; import 'quick_view_chart.dart'; import 'stat_charts.dart'; @@ -18,7 +17,7 @@ class MapContainerWidget extends StatefulWidget { class _MapContainerWidgetState extends State<MapContainerWidget> { - Measurement? selectedMarker; + Measurement? selectedMarker; // Containing data for selected marker bool isMinimized = true; // Quick view box state tacker bool satLayer = false; // Satellite layer visibility tracker @@ -138,7 +137,7 @@ class _MapContainerWidgetState extends State<MapContainerWidget> { const SizedBox(height: contPadding), // Padding between containers ClipRRect( borderRadius: BorderRadius.circular(20), - child: Container( + child: SizedBox( width: screenWidth * boxWidth, height: screenWidth * boxHeight * 1.5, // NB: make dynamic child: Align( diff --git a/app/lib/pages/widgets/osm_map.dart b/app/lib/pages/widgets/osm_map.dart new file mode 100644 index 00000000..ff89b371 --- /dev/null +++ b/app/lib/pages/widgets/osm_map.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; +import '../marker_handler/marker_data.dart'; +import '../consts.dart'; +import 'package:flutter_map/flutter_map.dart'; +import 'package:latlong2/latlong.dart'; + +class OSMmap extends StatelessWidget { + const OSMmap({super.key}); + + @override + Widget build(BuildContext context) { + return 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(), + ) + ], + ); + } +} diff --git a/app/lib/pages/widgets/sat_layer.dart b/app/lib/pages/widgets/sat_layer.dart new file mode 100644 index 00000000..e69de29b -- GitLab