diff --git a/app/lib/pages/marker_handler/marker_data.dart b/app/lib/pages/marker_handler/marker_data.dart index 5dbc70bbf88bbdfd4559c3b352a967c042f9c1ad..fd466ed890e293cb2f3a4cffeea9edbfe47b3e77 100644 --- a/app/lib/pages/marker_handler/marker_data.dart +++ b/app/lib/pages/marker_handler/marker_data.dart @@ -28,7 +28,7 @@ class Measurement { cornerList: (json['Corners'] as List<dynamic>) .map((data) => Corner.fromJson(data)) .toList(), - bodyOfWater: json['WaterBodyName'], + bodyOfWater: json['BodyOfWater'], /* dataList: (json['Data'] != null && json['Data'] is List) ? (json['Data'] as List<dynamic>).map((data) => Data.fromJson(data)).toList() diff --git a/app/lib/pages/widgets/map_widget.dart b/app/lib/pages/widgets/map_widget.dart index e8d2299815161cd95015f8c309aa43c8b84a4a57..d757b7b901ccdc3c1ad56b635a75f666bd52f65c 100644 --- a/app/lib/pages/widgets/map_widget.dart +++ b/app/lib/pages/widgets/map_widget.dart @@ -46,7 +46,7 @@ class _MapContainerWidgetState extends State<MapContainerWidget> { height: screenWidth * boxHeight, child: OSMmap(markerList: widget.markerList), // OpenStreetMap layer ), - SizedBox( + /*SizedBox( width: screenWidth * boxWidth, height: screenWidth * boxHeight, child: Stack( @@ -58,7 +58,7 @@ class _MapContainerWidgetState extends State<MapContainerWidget> { ), ], ), - ), + ),*/ Positioned( // Quick view box layered over map bottom: 10, right: 10, diff --git a/app/lib/pages/widgets/osm_map.dart b/app/lib/pages/widgets/osm_map.dart index 3e8eeeb2f0c07d83e421ddae0844521dba4f196c..3507756fcffcba0151449040187567481f10d1dc 100644 --- a/app/lib/pages/widgets/osm_map.dart +++ b/app/lib/pages/widgets/osm_map.dart @@ -14,33 +14,37 @@ class OSMmap extends StatelessWidget { @override Widget build(BuildContext context) { + // Init list of polygons + List<Polygon> polygons = []; + + // Map each element from markerList to a measurement object + markerList.forEach((Measurement measurement) { + // Map corners to a list of LatLng objects + List<LatLng> points = measurement.cornerList.map((Corner corner) { + return LatLng(corner.latitude, corner.longitude); + }).toList(); + + Polygon polygon = Polygon( + points: points, // Use list of corner coordinates to render polygon + color: Colors.blue.withOpacity(0.5), + isFilled: true, + ); + polygons.add(polygon); // Add each polygon to a list + }); + return FlutterMap( options: MapOptions( - center: mapCenter, // From consts + center: mapCenter, zoom: 9.0, ), children: [ - TileLayer( // Map from OpenStreetMap + TileLayer( 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: 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: () { NB: figure out how to make polygons interactive - setState(() { - selectedMarker = measurement; - }); - },*/ - color: Colors.blue, - isFilled: true, - ); - }).toList(), - ) + PolygonLayer( + polygons: polygons, // Return map with list of polygons included + ), ], ); } diff --git a/server/map/__pycache__/get_markers.cpython-311.pyc b/server/map/__pycache__/get_markers.cpython-311.pyc index f1ffc5e1e2334b2d572c69c525febcab86c55e61..136fe074aa97b652908bd4f21f45768bb9a6020e 100644 Binary files a/server/map/__pycache__/get_markers.cpython-311.pyc and b/server/map/__pycache__/get_markers.cpython-311.pyc differ diff --git a/server/map/add_new_water_body.py b/server/map/add_new_water_body.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/server/map/get_markers.py b/server/map/get_markers.py index cb8e58044e6b1559803514085107690eb5e2a78c..fccd78df99cf389a2a6a4c9c75722f62e940cf99 100644 --- a/server/map/get_markers.py +++ b/server/map/get_markers.py @@ -76,7 +76,7 @@ def get_all_markers(self, cursor, valid: bool): }, 'Data': [data_object], 'Corners': [corner_object], - 'BodyOfWater' : row[14] + 'BodyOfWater': row[14] } # Convert dictionary values to list of measurements @@ -103,4 +103,3 @@ def get_all_markers(self, cursor, valid: bool): # Write marker data to response object self.wfile.write(marker_data.encode('utf-8')) - diff --git a/server/sql_db/icedb b/server/sql_db/icedb index e01a5712975ae037329fb433f502db93106da42e..71aeb6857a09efb0d2d1b93f743e20fdaed071ed 100644 Binary files a/server/sql_db/icedb and b/server/sql_db/icedb differ