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