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> getDestinations( List destinations) async { final DestinationController destinationController = Get.find(); 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 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: { 'Content-Type': 'application/json; charset=UTF-8', }); if (response.statusCode == 200) { cats = json.decode(utf8.decode(response.bodyBytes)); } return cats; } }