public async void showTraversedRoute() { Bing.Maps.Directions.DirectionsManager dm = Map.DirectionsManager; if (GTec.User.Controller.Control.GetInstance().CurrentRoute == null || GTec.User.Controller.Control.GetInstance().CurrentRoute.WayPoints.Count <= 1) { return; } Bing.Maps.Directions.WaypointCollection col = new Bing.Maps.Directions.WaypointCollection(); foreach (Waypoint poi in GTec.User.Controller.Control.GetInstance().CurrentRoute.WayPoints) { if (poi.Visited) { Bing.Maps.Directions.Waypoint wp = new Bing.Maps.Directions.Waypoint(new Location(poi.Latitude, poi.Longitude)); wp.IsViaPoint = true; col.Add(wp); } } if (col.Count <= 1) { return; } col[0].IsViaPoint = false; col[col.Count - 1].IsViaPoint = false; dm.Waypoints = col; for (int i = 0; i < col.Count - 1; ++i) { Bing.Maps.Directions.Waypoint wp = col[i]; if ((i % 10) == 0 || i == 0 || i == col.Count - 1) { wp.IsViaPoint = false; } else { wp.IsViaPoint = true; } } dm.RenderOptions.ActiveRoutePolylineOptions.LineColor = Windows.UI.Colors.Gray; traveresedRouteResponse = await dm.CalculateDirectionsAsync(); dm.ShowRoutePath(traveresedRouteResponse.Routes[0]); }
public async void showTraversedRoute() { Bing.Maps.Directions.DirectionsManager dm = Map.DirectionsManager; if (GTec.User.Controller.Control.GetInstance().CurrentRoute == null || GTec.User.Controller.Control.GetInstance().CurrentRoute.WayPoints.Count <= 1) return; Bing.Maps.Directions.WaypointCollection col = new Bing.Maps.Directions.WaypointCollection(); foreach (Waypoint poi in GTec.User.Controller.Control.GetInstance().CurrentRoute.WayPoints) { if (poi.Visited) { Bing.Maps.Directions.Waypoint wp = new Bing.Maps.Directions.Waypoint(new Location(poi.Latitude, poi.Longitude)); wp.IsViaPoint = true; col.Add(wp); } } if (col.Count <= 1) return; col[0].IsViaPoint = false; col[col.Count - 1].IsViaPoint = false; dm.Waypoints = col; for (int i = 0; i < col.Count - 1; ++i) { Bing.Maps.Directions.Waypoint wp = col[i]; if ((i % 10) == 0 || i == 0 || i == col.Count - 1) { wp.IsViaPoint = false; } else { wp.IsViaPoint = true; } } dm.RenderOptions.ActiveRoutePolylineOptions.LineColor = Windows.UI.Colors.Gray; traveresedRouteResponse = await dm.CalculateDirectionsAsync(); dm.ShowRoutePath(traveresedRouteResponse.Routes[0]); }
public async void showRoute() { //Route route = await Controller.DatabaseConnector.INSTANCE.GetRouteAsync("HKtest1"); if (Controller.Control.GetInstance().CurrentRoute == null || Controller.Control.GetInstance().CurrentRoute.Name == null) { Controller.Control.GetInstance().CurrentRoute = await Controller.DatabaseConnector.INSTANCE.GetCurrentRoute(); Route r = await Controller.DatabaseConnector.INSTANCE.GetVisitedRoute(); if (r != null && Controller.Control.GetInstance().CurrentRoute != null) { foreach (Waypoint wp in r.WayPoints) { foreach (Waypoint rwp in Controller.Control.GetInstance().CurrentRoute.WayPoints) { if (wp.Equals(rwp)) { rwp.Visited = true; break; } } } } else { System.Diagnostics.Debug.WriteLine("TraversedRoute in DB is null"); } } Route route = Controller.Control.GetInstance().CurrentRoute; if (route == null) { return; } List <Waypoint> waypoints = new List <Waypoint>(); for (int i = 0; i < route.WayPoints.Count; i++) { waypoints.Add(route.WayPoints.ElementAt(i)); } Bing.Maps.Directions.DirectionsManager dm = Map.DirectionsManager; Bing.Maps.Directions.WaypointCollection wayPoints = new Bing.Maps.Directions.WaypointCollection(); foreach (Waypoint wp in waypoints) { wayPoints.Add(new Bing.Maps.Directions.Waypoint(new Location(wp.Latitude, wp.Longitude))); } for (int i = 0; i < wayPoints.Count; ++i) { Bing.Maps.Directions.Waypoint wp = wayPoints[i]; if ((i % 10) == 0 || i == 0 || i == wayPoints.Count - 1) { wp.IsViaPoint = false; } else { wp.IsViaPoint = true; } } //GTec.User.Controller.Control.GetInstance().CurrentRoute.WayPoints = convertToWaypointList(wayPoints); dm.Waypoints = wayPoints; dm.RequestOptions.RouteMode = Bing.Maps.Directions.RouteModeOption.Walking; dm.RenderOptions.WaypointPushpinOptions.PushpinTemplate = new ControlTemplate(); dm.RenderOptions.ActiveRoutePolylineOptions.LineColor = Windows.UI.Colors.Orange; dm.RenderOptions.WalkingPolylineOptions.LineColor = Windows.UI.Colors.Orange; dm.RenderOptions.TransitPolylineOptions.LineColor = Windows.UI.Colors.Orange; dm.RenderOptions.DrivingPolylineOptions.LineColor = Windows.UI.Colors.Orange; Bing.Maps.Directions.RouteResponse response = await dm.CalculateDirectionsAsync(); if (response.Routes.Count > 0) { dm.ShowRoutePath(response.Routes[0]); dm.ActiveRoute.RoutePath.LineWidth = 10; AddPointsOfInterest(GTec.User.Controller.Control.GetInstance().CurrentRoute); } showTraversedRoute(); }