public static async Task <string> GetPolyline(Coordinate origin, Coordinate destination, List <Coordinate> waypoints = null) { MapDirectionResponse MDR = await MapFunction.GetDirectionJsonAsync(origin, destination, waypoints); if (MDR.routes.Count == 0) { return(null); } tongquangduong += MDR.routes.FirstOrDefault().legs.FirstOrDefault().distance.value; List <Coordinate> PolylinePoints = new List <Coordinate>(); foreach (Leg leg in MDR.routes[0].legs) { foreach (Step step in leg.steps) { List <Coordinate> miniPolylinePoints = MapFunction.Decode(step.polyline.points).ToList(); miniPolylinePoints.Remove(miniPolylinePoints.Last()); PolylinePoints.AddRange(miniPolylinePoints); } } Coordinate lastPolylinePoint = MapFunction.Decode(MDR.routes[0].legs.Last().steps.Last().polyline.points).Last(); PolylinePoints.Add(lastPolylinePoint); string Polyline = MapFunction.Encode(PolylinePoints); return(Polyline); }
public static async Task <double> GetDistanceAsync(Coordinate origin, Coordinate destination, List <Coordinate> waypoints = null) { MapDirectionResponse mapDirectionResponse = await GetDirectionJsonAsync(origin, destination, waypoints); double distance = 0; foreach (Leg leg in mapDirectionResponse.routes[0].legs) { distance += leg.distance.value; } return(distance); }
public static IEnumerable <Coordinate> GetOverviewPolylinePoints(MapDirectionResponse mapDirectionResponse) { string overview_polyline = mapDirectionResponse.routes[0].overview_polyline.points; return(Decode(overview_polyline)); }