Exemple #1
0
        void CalculateRoute(BingTravelMode mode)
        {
            if (isBusy)
            {
                return;
            }
            isBusy = true;
            var waypoints    = new[] { new RouteWaypoint(StartingAddress, StartingLocation), new RouteWaypoint(DestinationAddress, DestinationLocation) };
            var unit         = DistanceMeasureUnit.Mile;
            var optimization = BingRouteOptimization.MinimizeTime;

            RouteService.CalculateRouteAsync(waypoints, unit, optimization, mode).ContinueWith(t => {
                if (t.Result.ResultCode == RequestResultCode.Success && t.Result.RouteResults.Count > 0)
                {
                    BingRouteResult route = t.Result.RouteResults.First();
                    if (route.Legs.Count > 0)
                    {
                        BingRouteLeg leg       = route.Legs.First();
                        IsWalkingAvailable     = (leg.Distance > maximumWalkingDistance) ? false : true;
                        GeoPoint startLocation = leg.Itinerary.First().Location;
                        GeoPoint endLocation   = leg.Itinerary.Last().Location;
                        CenterPoint            = new GeoPoint((startLocation.Latitude + endLocation.Latitude) / 2, (startLocation.Longitude + endLocation.Longitude) / 2);
                        ActiveItinerary        = leg.Itinerary.Select(item => new ItineraryItemViewModel(item)).ToList();
                    }
                }
                isBusy = false;
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
 public void SetWalkingTravelMode() {
     TravelMode = BingTravelMode.Walking;
 }
 public void SetDrivingTravelMode() {
     TravelMode = BingTravelMode.Driving;
 }
Exemple #4
0
 public Task <RouteCalculationResult> CalculateRouteAsync(IEnumerable <RouteWaypoint> waypoints, DistanceMeasureUnit unit, BingRouteOptimization optimization, BingTravelMode mode)
 {
     taskSource            = new TaskCompletionSource <RouteCalculationResult>();
     Provider.RouteOptions = new BingRouteOptions {
         Mode = mode, DistanceUnit = unit, RouteOptimization = optimization
     };
     Provider.CalculateRoute(waypoints.ToList());
     Provider.RouteCalculated += Provider_RouteCalculated;
     return(taskSource.Task);
 }
 public void SetWalkingTravelMode()
 {
     TravelMode = BingTravelMode.Walking;
 }
 public void SetDrivingTravelMode()
 {
     TravelMode = BingTravelMode.Driving;
 }