예제 #1
0
        private void CallT_Click(object sender, RoutedEventArgs e)
        {
            CBar.Value = 0;
            Car nearestCar = null;

            RStart = Passanger.getFocus();

            var Obj = mapObjects.OrderBy(mapObject => mapObject.getDistance(RStart));

            foreach (MapObject obj in Obj)
            {
                if (obj is Car)
                {
                    nearestCar = (Car)obj;
                    break;
                }
            }

            CallT.IsEnabled = false;

            var       route          = nearestCar.MoveTo(RStart);
            MapObject mapObject_path = new Route_c(OName.Text, "Route", route.Points, route.Points.First());

            Map.Markers.Add(mapObject_path.GetMarker());
            RoutingProvider routingProvider = GMapProviders.OpenStreetMap;

            MapRoute  rroute          = routingProvider.GetRoute(RStart, RFinish, false, false, 15);
            MapObject mapObject_path1 = new Route_c(OName.Text, "Route", rroute.Points, rroute.Points.First());

            Map.Markers.Add(mapObject_path1.GetMarker());

            nearestCar.Arrived += Passanger.CarArrived;
            Passanger.seated   += nearestCar.getintocar;
            nearestCar.Follow  += Focus_Follow;
        }
예제 #2
0
 private void Map_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     point = Map.FromLocalToLatLng((int)e.GetPosition(Map).X, (int)e.GetPosition(Map).Y);
     if (selectpas == true)
     {
         var Obj = mapObjects.OrderBy(mapObject => mapObject.getDistance(point));
         foreach (MapObject obj in Obj)
         {
             if (obj is Human)
             {
                 Passanger = (Human)obj;
                 selectpas = false;
                 if (destselected == true)
                 {
                     Passanger.DPoint = destination;
                     RStart           = Passanger.getFocus();
                     MessageBox.Show("Now you can call taxi");
                     CallT.IsEnabled = true;
                 }
                 else
                 {
                     MessageBox.Show("Your choise is - " + "'" + Passanger.objectName + "'" + ", now choose the Destination");
                 }
                 break;
             }
         }
     }
     if (selectdis == true)
     {
         var Obj = mapObjects.OrderBy(mapObject => mapObject.getDistance(point));
         foreach (MapObject obj in Obj)
         {
             if ((obj is Human && obj != Passanger) || obj is Location_c || obj is Area || obj is Route_c)
             {
                 destselected = true;
                 selectdis    = false;
                 destination  = obj.getFocus();
                 if (Passanger != null)
                 {
                     Passanger.DPoint = destination;
                     RFinish          = Passanger.DPoint;
                     MessageBox.Show("Now you can call taxi");
                     CallT.IsEnabled = true;
                 }
                 else
                 {
                     MessageBox.Show("Сhoose a passenger to travel");
                 }
                 break;
             }
         }
     }
     if (creationmode == true)
     {
         if (combox.SelectedIndex == 0)
         {
             createra.IsEnabled = true;
         }
         if (combox.SelectedIndex == 1)
         {
             createra.IsEnabled = true;
         }
         if (combox.SelectedIndex == 2)
         {
             createra.IsEnabled = true;
         }
         if (combox.SelectedIndex == 3)
         {
             routepoints.Add(point);
             rpointc += 1;
             if (rpointc >= 2)
             {
                 createra.IsEnabled    = true;
                 clearpoints.IsEnabled = true;
             }
         }
         if (combox.SelectedIndex == 4)
         {
             areapoints.Add(point);
             apointc += 1;
             if (apointc >= 3)
             {
                 createra.IsEnabled    = true;
                 clearpoints.IsEnabled = true;
             }
         }
     }
     else
     {
         OList.Items.Clear();
         OList.Items.Add(null);
         secondList = mapObjects.OrderBy(mobject => mobject.getDistance(point)).ToList();
         foreach (MapObject obj in secondList)
         {
             string mapObjectAndDistanceString = new StringBuilder()
                                                 .Append(obj.getType())
                                                 .Append(" - ")
                                                 .Append(obj.getTitle())
                                                 .Append(" - ")
                                                 .Append(obj.getDistance(point).ToString("0.##"))
                                                 .Append(" м.").ToString();
             OList.Items.Add(mapObjectAndDistanceString);
         }
         secondact = true;
     }
 }
예제 #3
0
 private void OList_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (selectpas == true)
     {
         try
         {
             Passanger    = (Human)secondList[OList.SelectedIndex - 1];
             Map.Position = Passanger.getFocus();
             selectpas    = false;
             secondact    = true;
             if (destselected == true)
             {
                 Passanger.DPoint = destination;
                 RStart           = Passanger.getFocus();
                 MessageBox.Show("Now you can call taxi");
                 CallT.IsEnabled = true;
             }
             else
             {
                 MessageBox.Show("Your choise is - " + "'" + Passanger.objectName + "'" + ", now choose the Destination");
             }
         }
         catch { };
     }
     else
     if (selectdis == true)
     {
         try
         {
             destination  = secondList[OList.SelectedIndex - 1].getFocus();
             Map.Position = secondList[OList.SelectedIndex - 1].getFocus();
             destselected = true;
             if (Passanger != null)
             {
                 Passanger.DPoint = destination;
                 RFinish          = Passanger.DPoint;
                 MessageBox.Show("Now you can call taxi");
                 CallT.IsEnabled = true;
             }
             else
             {
                 MessageBox.Show("Сhoose a passenger to travel");
             }
             selectdis = false;
             secondact = true;
         }
         catch { };
     }
     else
     {
         if (OList.SelectedIndex > 0 && secondact == false)
         {
             Map.Position = mapObjects[OList.SelectedIndex - 1].getFocus();
         }
         else
         {
             if (OList.SelectedIndex > 0)
             {
                 Map.Position = secondList[OList.SelectedIndex - 1].getFocus();
             }
         }
     }
 }