diff --git a/app/assets/icons/marker.png b/app/assets/icons/marker.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d6980c6ba0227597af40e6235257800076f17e Binary files /dev/null and b/app/assets/icons/marker.png differ diff --git a/app/lib/main.dart b/app/lib/main.dart index 91f6c2243d5289e59a1f3cf7f7110ec8d128716e..db05f28bc16c09e9fa51ff863c6756ea31b87290 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -151,22 +151,29 @@ class _DefaultPageState extends State<DefaultPage> { urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", subdomains: const ['a', 'b', 'c'], ), - MarkerLayer( // Dynamically allocate markers based on a list - markers: markerList - .map( - (MarkerData markerData) => Marker( + MarkerLayer( + // Dynamically allocate markers based on a list + markers: markerList.map((MarkerData markerData) { + return Marker( width: markerData.size, height: markerData.size, point: markerData.location, - builder: (ctx) => Icon( - Icons.location_on, - color: markerData.color, - size: markerData.size, + builder: (ctx) => GestureDetector( + onTap: () { + // NB: temporary print + print('Icon tapped'); + // NB: trigger function to add contents to the next box + }, + child: Icon( + Icons.circle, + color: markerData.color, + size: markerData.size, + ), ), - ), - ) - .toList(), + ); + }).toList(), ), + ], ), ), diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 7d385a53bf526fef8a336ccb16d1bc9e5726088b..35f346897616228a5c3b33ccbc4b5fc1f3a11d4b 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -22,3 +22,6 @@ dev_dependencies: flutter: uses-material-design: true + assets: + - assets/icons/marker.png + diff --git a/server/main.py b/server/main.py index 97253949bb348a70b72262b5eb0e1c6a663edd7c..6821170123cc7ab68ae6cfcc01acd9df8680eddd 100644 --- a/server/main.py +++ b/server/main.py @@ -31,13 +31,13 @@ class IceHTTP(BaseHTTPRequestHandler): self.end_headers() self.wfile.write(b"Root path hit!") elif self.path == '/update_map': - # Send the response with a status code (e.g., 200 for success) - self.send_response(200) + markers_data, resp_code = get_markers() + + self.send_response(resp_code) self.send_header("Content-type", "application/json") self.end_headers() # Write the JSON data directly to the response - markers_data = get_markers() self.wfile.write(markers_data.encode('utf-8')) elif self.path == '/test_endpoint': diff --git a/server/map/__pycache__/get_markers.cpython-311.pyc b/server/map/__pycache__/get_markers.cpython-311.pyc index 584c67ac6dd58b5d3fbcc9f35fa30569e4a48c80..eaac436b90b9b1be5369c74580ec0a458bd2a1be 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/get_markers.py b/server/map/get_markers.py index f59ca2b4941c28df79d0450d713596da3c95e208..2803a727db05ee73c073ddceb17a062a32207b3e 100644 --- a/server/map/get_markers.py +++ b/server/map/get_markers.py @@ -6,13 +6,19 @@ sys.path.append(parent_dir) from data_structs import MarkerTemplate from flask import json -def get_markers(): - testData = [ - MarkerTemplate(latitude=60.7266, longitude=10.9771, size=50.0, color='blue'), - MarkerTemplate(latitude=60.8366, longitude=10.8171, size=70.0, color='red'), - MarkerTemplate(latitude=60.7366, longitude=10.8471, size=60.0, color='green'), - ] - # Return jsonified marker list - return json.dumps([marker.to_dict() for marker in testData]) +# get_markers parses a list of MarkerTemplate objects to json, and returns either a successfully +# parsed json object with status code 200, or and error message and status code 501 +def get_markers(): + try: + testData = [ + MarkerTemplate(latitude=60.7266, longitude=10.9771, size=30.0, color='blue'), + MarkerTemplate(latitude=60.8366, longitude=10.8171, size=20.0, color='red'), + MarkerTemplate(latitude=60.7366, longitude=10.8471, size=10.0, color='green'), + ] + + return json.dumps([marker.to_dict() for marker in testData]), 200 + + except Exception as e: + return e, 500