Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
        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();
        }