コード例 #1
0
        public static void UpdateRoutes(Route CurrentRoute)
        {
            var Routes = RoutesRepo.GetRoutes();

            if (Routes != null)
            {
                if (Routes.Count > 0)
                {
                    CurrentRoute.Id = Routes[Routes.Count - 1].Id + 1;
                }
            }
            else
            {
                Routes = new ObservableCollection <Route>();
            }
            Routes.Add(CurrentRoute);

            var json = JsonConvert.SerializeObject(Routes);


            File.WriteAllText("Routes.json", json);
        }
コード例 #2
0
        private void TimerForCarAnimation_Tick(object sender, EventArgs e)
        {
            if (routeResult.Locations.Count == 0)
            {
                return;
            }


            if (TempIndexForLocationCollection == 0)
            {
                MyMap.SetView(routeResult.Locations, new Thickness(200), 0);
            }



            // Dongelerde mashinin istiqametini mueyyen etmek ucun
            if (TempIndexForLocationCollection != routeResult.Locations.Count)
            {
                for (int i = 0; i < routeResult.ManeuverPointsForDegreesAnimation.Count; i++)
                {
                    if (routeResult.ManeuverPointsForDegreesAnimation[i] == routeResult.Locations[TempIndexForLocationCollection])
                    {
                        CarRotateForDegreeAnimation = routeResult.RoutePathForDegreesAnimation[i] + 93;
                        routeResult.ManeuverPointsForDegreesAnimation.RemoveAt(i); // keciymiz yollari silirem.
                        routeResult.RoutePathForDegreesAnimation.RemoveAt(i);
                        break;
                    }
                }



                foreach (var child in MyMap.Children)
                {
                    if (child is Pushpin updateTaxiLocation) // Taxi going
                    {
                        if (updateTaxiLocation.Tag?.ToString() == CurrentRoute.Driver.Id.ToString())
                        {
                            MyMap.Children.Remove(updateTaxiLocation);

                            updateTaxiLocation.Location = routeResult.Locations[TempIndexForLocationCollection];
                            updateTaxiLocation.Template = Application.Current.FindResource("TaxiPushpin") as ControlTemplate;
                            MapLayer.SetPositionOffset(updateTaxiLocation, new Point(0, 20));
                            MyMap.Children.Add(updateTaxiLocation);
                            break;
                        }
                    }
                }


                //foreach (var child in myMap.Children)
                //{
                //    if (child is MapPolyline RoutePolyline)
                //    {
                //        RoutePolyline.Locations.RemoveAt(TempIndexForLocationCollection);
                //    }
                //}

                CurrentRoute.Driver.Location = routeResult.Locations[TempIndexForLocationCollection];
                TempIndexForLocationCollection++;
            }
            else
            {
                if (DriverWaiting)
                {
                    ClearFunc();
                    GetAPIResultService.GetRoutePoints(GetCurrentLocationService.CurrentLocation(), DestinationLocation, routeResult);

                    //Add Polyline ( RoutePath )
                    MapPolyline.Locations = routeResult.Locations;
                    MyMap.Children.Add(MapPolyline);
                    MyMap.Children.Add(new Pushpin()
                    {
                        Location = DestinationLocation, ToolTip = GetAPIResultService.CurrentLocationAddressName(DestinationLocation).ToString()
                    });

                    DriverWaiting = false;
                    TimerForCarAnimation.Start();
                }
                else
                {
                    EndRouteView RatingView = new EndRouteView();

                    RatingView.ShowDialog();



                    WriteToFileService.UpdateRoutes(CurrentRoute);

                    WriteToFileService.UpdateDrivers(DriversVM, RatingView.Endvm.RatingValue, CurrentRoute.Driver);


                    History = RoutesRepo.GetRoutes();

                    ClearFunc();
                }
            }
        }