Files
rog_app/lib/services/destination_service.dart
Mohamed Nouffer 3d9f20fd66 update
2022-06-06 21:15:58 +05:30

94 lines
3.7 KiB
Dart

import 'dart:convert';
import 'dart:ffi';
import 'package:flutter_polyline_points/flutter_polyline_points.dart';
//import 'package:google_maps_webservice/directions.dart';
import 'package:http/http.dart' as http;
class DestinationService{
static Future<List<dynamic>> getDestinations(int user_id) async {
List<dynamic> cats = [];
//String url = "http://container.intranet.sumasen.net:8100/api/destinations/?user_id=${user_id}";
String url = "http://localhost:8100/api/destinations/?user_id=${user_id}";
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;
}
static Future<Map<String, dynamic>> deleteDestination(int dest_id) async {
Map<String, dynamic> cats = {};
//String url = "http://container.intranet.sumasen.net:8100/api/delete_destination/?dest_id=${dest_id}";
String url = "http://localhost:8100/api/delete_destination/?dest_id=${dest_id}";
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));
}
print("####### ---- ${cats}");
return cats;
}
static Future<int> updateOrder(int action_id, int order, String dir) async {
int cats = 0;
//String url = "http://container.intranet.sumasen.net:8100/api/updateorder/?user_action_id=${action_id}&order=${order}&dir=${dir}";
String url = "http://localhost:8100/api/updateorder/?user_action_id=${action_id}&order=${order}&dir=${dir}";
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;
}
static Future<List<PointLatLng>>? getDestinationLine(List<dynamic> destinations) async{
PolylinePoints polylinePoints = PolylinePoints();
//print("##### @@@@@ ${destinations[0]["location"]["geometry"]["coordinates"][0][1]}");
PointLatLng origin = PointLatLng(destinations[0]["location"]["geometry"]["coordinates"][0][1], destinations[0]["location"]["geometry"]["coordinates"][0][0]);
PointLatLng dest = PointLatLng(destinations[destinations.length -1]["location"]["geometry"]["coordinates"][0][1], destinations[destinations.length -1]["location"]["geometry"]["coordinates"][0][0]);
List<PolylineWayPoint> wayPoints = [];
int i=0;
for(dynamic d in destinations){
if(i == 0 || i == (destinations.length -1)){
i+=1;
continue;
}
double la = d["location"]["geometry"]["coordinates"][0][1]as double;
double ln = d["location"]["geometry"]["coordinates"][0][0] as double;
PolylineWayPoint pwp = PolylineWayPoint(location: "${la},${ln}", stopOver: true);
//print("----- UUUUUU ${pwp}");
//PointLatLng wp = PointLatLng(d["Location"]["geometry"][0][1], d["Location"]["geometry"][0][0]);
wayPoints.add(pwp);
i+=1;
}
//PolylineResult result = await polylinePoints.getRouteBetweenCoordinates("AIzaSyAUBI1ablMKuJwGj2-kSuEhvYxvB1A-mOE", PointLatLng(35.389282, 136.498027), PointLatLng(36.285848, 137.575186));
PolylineResult result = await polylinePoints.getRouteBetweenCoordinates("AIzaSyAUBI1ablMKuJwGj2-kSuEhvYxvB1A-mOE", origin,dest, travelMode: TravelMode.driving, wayPoints: wayPoints);
//print("#####@@@@@ ${result.points}");
return result.points;
}
}