Skip to content
Snippets Groups Projects
Commit 79ff9e29 authored by theilen's avatar theilen
Browse files

Include day and weather information

parent d986b2ca
Branches
No related tags found
1 merge request!6final project merge into main
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map/flutter_map.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:tuple/tuple.dart';
import 'widgets/returnOrigin.dart'; import 'widgets/returnOrigin.dart';
import 'widgets/returnDestination.dart'; import 'widgets/returnDestination.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart';
...@@ -212,28 +213,19 @@ class _MyHomePageState extends State<MyHomePage> { ...@@ -212,28 +213,19 @@ class _MyHomePageState extends State<MyHomePage> {
var originlon = _originCoordinates.longitude; var originlon = _originCoordinates.longitude;
var destlat = _destCoordinates.latitude; var destlat = _destCoordinates.latitude;
var destlon = _destCoordinates.longitude; var destlon = _destCoordinates.longitude;
var dateTup = getDayOffset();
// Get direction data // Get direction data
// No weather or days included for now // No weather or days included for now
final response = await http.post( final response = await http.post(Uri.parse('http://10.0.2.2:8080/route'),
Uri.parse('http://10.0.2.2:8080/route'), body: jsonEncode({
body: jsonEncode( "start_node": {"lat": originlat, "lon": originlon},
{ "end_node": {"lat": destlat, "lon": destlon},
"start_node": { "forbidden": getForbidden(),
"lat": originlat, "start_after_today": dateTup.item1,
"lon": originlon "end_after_today": dateTup.item2
}, }),
"end_node": { headers: <String, String>{"Content-Type": "application/json"});
"lat": destlat,
"lon": destlon
},
"forbidden": [],
"start_after_today": 0,
"end_after_today": 0
}
),
headers: <String, String>{"Content-Type": "application/json"}
);
_data = jsonDecode(response.body); _data = jsonDecode(response.body);
var coordinates = _data['route']; var coordinates = _data['route'];
int duration = _data['duration']; int duration = _data['duration'];
...@@ -293,6 +285,32 @@ class _MyHomePageState extends State<MyHomePage> { ...@@ -293,6 +285,32 @@ class _MyHomePageState extends State<MyHomePage> {
return '$distanceInKm km'; return '$distanceInKm km';
} }
List<String> getForbidden() {
List<String> forbidden = [];
for (var option in _selectedOptions) {
switch (option) {
case 'Rain':
forbidden.add('rain');
break;
case 'Frost':
forbidden.add('ice');
break;
case 'Wind':
forbidden.add('wind');
break;
case 'Snow':
forbidden.add('snow');
}
}
return forbidden;
}
Tuple2<int, int> getDayOffset() {
return Tuple2<int, int>(_dateRange.start.difference(DateTime.now()).inDays,
_dateRange.end.difference(DateTime.now()).inDays);
}
// Get coords between origin/dest points corresponding to shortest path and update _info. // Get coords between origin/dest points corresponding to shortest path and update _info.
// This part is going to be updated to take directions from backend instead of Direction API. // This part is going to be updated to take directions from backend instead of Direction API.
// Future<Directions> _getDirections() async { // Future<Directions> _getDirections() async {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment