update to routing

This commit is contained in:
Mohamed Nouffer
2022-09-29 15:32:33 +05:30
parent 0ca322e278
commit 0470e1f27f
11 changed files with 120 additions and 70 deletions

View File

@ -67,7 +67,7 @@ class DestinationService{
return cats;
}
static Future<List<PointLatLng>>? getDestinationLine(List<Destination> destinations) async{
static Future<List<PointLatLng>>? getDestinationLine(List<Destination> destinations, Map<String, dynamic> mtx) async{
PolylinePoints polylinePoints = PolylinePoints();
if(destinations.length <= 0){
@ -88,28 +88,40 @@ class DestinationService{
}
double la = d.lat;
double ln = d.lon;
PolylineWayPoint pwp = PolylineWayPoint(location: "${la},${ln}", stopOver: true);
int j = 0;
PolylineWayPoint pwp = PolylineWayPoint(location: "${la},${ln}", stopOver: false);
//print("----- UUUUUU ${pwp}");
//PointLatLng wp = PointLatLng(d["Location"]["geometry"][0][1], d["Location"]["geometry"][0][0]);
wayPoints.add(pwp);
i+=1;
j += 4;
}
final DestinationController destinationController = Get.find<DestinationController>();
int trav_mode = destinationController.travelMode.value;
TravelMode _mode = TravelMode.walking;
String _mode = "WALKING";
if(trav_mode == 1){
_mode = TravelMode.driving;
//_mode = TravelMode.driving;
_mode = "DRIVING";
}
else if(trav_mode == 2) {
_mode = TravelMode.transit;
//_mode = TravelMode.transit;
_mode = "TRANSIT";
}
//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: _mode, wayPoints: wayPoints);
Map<String, dynamic> pl = destinationController.matrix["routes"][0]["overview_polyline"];
List<PointLatLng> result = polylinePoints.decodePolyline(pl["points"]);
//List<PointLatLng> result = polylinePoints.decodePolyline("qkyvEq`z`Yp@DBMr@XL@Td@Eb@PREd@IFe@rKIzCY|GEvCBzCHvS@xC?HnBHtBHlBFnBFhGRtDVW~BE`@ICHLk@dE_ClPgAtHu@bFsAhPg@~Ge@bFaEtg@kEpi@oCd\\w@nIw@hGe@fBy@nBqAjC{@zBgBtFOd@M@Wv@i@`BQf@ITKCuE`@yDZqBRCHa@DKG_AHwBRiBR_Fp@y@LYBY]M@KJo@v@M@cAGoGN_Cx@}Cf@}@@mM~@qF`@gCLwBj@sBrAeAhAsAtCoF|MmAbD{@fBwAdBw@p@_Ax@BFOHAl@?`@MAQCEAOIQSaBx@{Ah@eATsAHSB?d@A`D?f@IdWy@AS??V?|BCJ}@?cA?k@Au@wBqDuKQaACg@z@gELg@GK~@uEp@{A@q@y@CHwFHcG?KDqCDK^ABABEH{AE{B{@_Ho@uFIaBFQhBaC@SQSg@k@g@q@Yw@qA{De@}B]uDCsAMEWDqAFu@@^A@TDjA@vDA`CETK|AEtAIFY@o@ALpBZ~HBlCBn@EDGPu@pASJO`@Qf@?ROr@K?qDLHnEUTsDNkENYB{Ab@I^?zA}CrCkBfBw@t@@LwA`Bo@r@eGvD}BrAGGuAj@[?i@rBVi@P}@T?F?^MxDuBhDsBzAcAn@s@zCgDAI~A{A|CsC?{A?UHItA_@DCXC~J_@TUIoEvDKTm@?Y^iALIb@k@f@aAE}AA_BC{@\\Cv@CxAEj@ExCwDDc@CYFANCh@WHEIIRQhB}B|C_E\\w@Hq@JE?a@O}CGkAIwEGmDEmDAKLA^?A}@C{@?e@E_DFQNi@LcB\\eBPsADGKOEWBOH[GCPs@Pq@\\cANs@^q@jAu@fCqAf@]HCXoCV_BVmAZmBVcDBeCCgDAaB?s@RE?aCCaEAyHAoDd@EJiD@_@AaAj@A\\A?Gp@@r@oBXm@LQ?IEy@Fy@tA[n@Gj@Tz@[~ACdAAx@Lp@Kr@]hAa@HAQoCMwCSwGSiGK_CCCKaBCgCOoCOgECwGB_OB{JHkBEmC?yCDyFF{QFue@BsYByE?oAEgAByLBiL?gLBuGXsEd@cCNA?OHa@jAuCn@eAtCyDh@k@v@EvBKr@EEkACUKaC?G~@gAlCeDFBT[jFeGZAfBEh@UpBM`AEMaFjFYIhE?hEPpCJzAPt@Fj@GNUFu@N[FyBbAuB`@_@LEIOB}@HUBQFk@FcAACGQA}@Bi@F@F[Dc@D[FQHELGhBMtDGR?D");
//PolylineResult result = await polylinePoints.getRouteBetweenCoordinates("AIzaSyAUBI1ablMKuJwGj2-kSuEhvYxvB1A-mOE", origin,dest, travelMode: _mode, wayPoints: wayPoints);
//print("#####@@@@@ ${result.points}");
return result.points;
return result;
}

View File

@ -14,6 +14,7 @@ class MatrixService{
String locs = "";
String origin = "";
String destination = "";
int i = 0;
for(Destination d in destinations){
@ -21,6 +22,14 @@ class MatrixService{
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}");
@ -28,6 +37,8 @@ class MatrixService{
i++;
}
locs = "optimize:false|${locs}";
String _mode = "walking";
switch (destinationController.travelMode.value) {
case 1:
@ -42,7 +53,7 @@ class MatrixService{
}
Map<String, dynamic> cats = {};
String url = "https://maps.googleapis.com/maps/api/distancematrix/json?destinations=${locs}&mode=${_mode}&origins=${origin}&key=AIzaSyAUBI1ablMKuJwGj2-kSuEhvYxvB1A-mOE";
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),