Files
rog_app/lib/services/maxtrix_service.dart
2023-08-16 14:53:32 +05:30

74 lines
1.8 KiB
Dart

import 'dart:convert';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'package:rogapp/model/destination.dart';
import 'package:rogapp/pages/destination/destination_controller.dart';
class MatrixService{
static Future<Map<String, dynamic>> getDestinations(List<Destination> destinations) async {
final DestinationController destinationController = Get.find<DestinationController>();
String locs = "";
String origin = "";
String destination = "";
int i = 0;
for(Destination d in destinations){
print("---- getting matrix for $d ------------");
if(i==0){
origin = "${d.lat}, ${d.lon}";
i++;
continue;
}
if(i == (destinations.length - 1)){
destination = "${d.lat}, ${d.lon}";
i++;
continue;
}
print("lat is ${d.lat}, long is ${d.lon}");
locs += "${d.lat}, ${d.lon}|";
i++;
}
locs = "optimize:false|$locs";
String _mode = "walking";
switch (destinationController.travelMode.value) {
case 1:
_mode = "driving";
break;
case 2:
_mode = "transit";
break;
default:
_mode = "walking";
break;
}
Map<String, dynamic> cats = {};
String url = "https://maps.googleapis.com/maps/api/directions/json?destination=$destination&mode=$_mode&waypoints=$locs&origin=$origin&key=AIzaSyAUBI1ablMKuJwGj2-kSuEhvYxvB1A-mOE";
print('++++++++$url');
final http.Response response = await http.get(
Uri.parse(url),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
}
);
if (response.statusCode == 200) {
cats = json.decode(utf8.decode(response.bodyBytes));
}
return cats;
}
}