public static void HandleActivated() { Settings = PhoneApplicationService.Current.State["Settings"] as Settings; Commutes = PhoneApplicationService.Current.State["Commutes"] as CommuteCollection; SelectedCommute = PhoneApplicationService.Current.State["SelectedCommute"] as MobileSrc.Commuter.Shared.CommuteDefinition; SelectedRoute = PhoneApplicationService.Current.State["SelectedRoute"] as MobileSrc.Commuter.Shared.RouteDefinition; Settings.SettingsChanged += new EventHandler(_settings_SettingsChanged); }
public static TimeSpan RefreshRoute(CommuteDefinition definition, RouteDefinition route, bool reverseRoute) { RouteRestRequest request = new RouteRestRequest(); request.Waypoints = new List <RestWaypoint>(); request.Waypoints.Add(new RestWaypoint()); request.ApplicationId = BingMapsApiKey; request.Waypoints[0].Location = new RestLocation(); request.Waypoints[0].Location.Latitude = definition.StartPoint.Location.Latitude; request.Waypoints[0].Location.Longitude = definition.StartPoint.Location.Longitude; foreach (MobileSrc.Commuter.Shared.RouteLocation wayPoint in route.WayPoints) { request.Waypoints.Add(new RestWaypoint()); request.Waypoints[request.Waypoints.Count - 1].Location = new RestLocation(); request.Waypoints[request.Waypoints.Count - 1].Location.Latitude = wayPoint.Location.Latitude; request.Waypoints[request.Waypoints.Count - 1].Location.Longitude = wayPoint.Location.Longitude; } request.Waypoints.Add(new RestWaypoint()); request.Waypoints[request.Waypoints.Count - 1].Location = new RestLocation(); request.Waypoints[request.Waypoints.Count - 1].Location.Latitude = definition.EndPoint.Location.Latitude; request.Waypoints[request.Waypoints.Count - 1].Location.Longitude = definition.EndPoint.Location.Longitude; if (route.AvoidanceMeasures != RouteAvoid.None) { request.Avoid = route.AvoidanceMeasures; } if (reverseRoute) { System.Collections.Generic.List <RestWaypoint> reversed = new System.Collections.Generic.List <RestWaypoint>(); for (int i = request.Waypoints.Count - 1; i >= 0; --i) { reversed.Add(request.Waypoints[i]); } request.Waypoints = reversed; } request.Optimize = RouteOptimize.TimeWithTraffic; request.PathOutput = RoutePathOutput.Points; Route restRoute = request.Execute(); return(TimeSpan.FromSeconds(restRoute.TravelDuration)); }
public static TimeSpan RefreshRoute(CommuteDefinition definition, RouteDefinition route, bool reverseRoute) { RouteRestRequest request = new RouteRestRequest(); request.Waypoints = new List<RestWaypoint>(); request.Waypoints.Add(new RestWaypoint()); request.ApplicationId = BingMapsApiKey; request.Waypoints[0].Location = new RestLocation(); request.Waypoints[0].Location.Latitude = definition.StartPoint.Location.Latitude; request.Waypoints[0].Location.Longitude = definition.StartPoint.Location.Longitude; foreach (MobileSrc.Commuter.Shared.RouteLocation wayPoint in route.WayPoints) { request.Waypoints.Add(new RestWaypoint()); request.Waypoints[request.Waypoints.Count - 1].Location = new RestLocation(); request.Waypoints[request.Waypoints.Count - 1].Location.Latitude = wayPoint.Location.Latitude; request.Waypoints[request.Waypoints.Count - 1].Location.Longitude = wayPoint.Location.Longitude; } request.Waypoints.Add(new RestWaypoint()); request.Waypoints[request.Waypoints.Count - 1].Location = new RestLocation(); request.Waypoints[request.Waypoints.Count - 1].Location.Latitude = definition.EndPoint.Location.Latitude; request.Waypoints[request.Waypoints.Count - 1].Location.Longitude = definition.EndPoint.Location.Longitude; if (route.AvoidanceMeasures != RouteAvoid.None) { request.Avoid = route.AvoidanceMeasures; } if (reverseRoute) { System.Collections.Generic.List<RestWaypoint> reversed = new System.Collections.Generic.List<RestWaypoint>(); for (int i = request.Waypoints.Count - 1; i >= 0; --i) { reversed.Add(request.Waypoints[i]); } request.Waypoints = reversed; } request.Optimize = RouteOptimize.TimeWithTraffic; request.PathOutput = RoutePathOutput.Points; Route restRoute = request.Execute(); return TimeSpan.FromSeconds(restRoute.TravelDuration); }
public static void RefreshRoute(CommuteDefinition definition, RouteDefinition route, bool reverseRoute) { Route restRoute = null; try { restRoute = RefreshRoute(definition.StartPoint, definition.EndPoint, route, reverseRoute); } catch { } if (null == restRoute) { } else { if (reverseRoute) { route.EstimatedRetDistance = restRoute.TravelDistance; route.EstimatedRetDuration = TimeSpan.FromSeconds(restRoute.TravelDuration); } else { route.EstimatedDistance = restRoute.TravelDistance; route.EstimatedDuration = TimeSpan.FromSeconds(restRoute.TravelDuration); } route.Directions.Clear(); foreach (RouteLeg leg in restRoute.RouteLeg) { foreach (ItineraryItem item in leg.ItineraryItem) { route.Directions.Add(new RouteDirection(item.Instruction)); } } route.RoutePoints.Clear(); foreach (MobileSrc.Commuter.Shared.RouteServices.Rest.Point location in restRoute.RoutePath.Line.Point) { route.RoutePoints.Add(Utils.CreateGpsLocation(location.Latitude, location.Longitude)); } route.LastUpdated = DateTime.Now; } route.FireUpdated(); }