// метод перемещения по маршруту private void MoveByRoute() { double pointss = 100 / route.getLocations().Count; foreach (var point in route.getLocations()) { this.location = point; Application.Current.Dispatcher.Invoke(delegate { this.location = point; marker.Position = point; gMap.Position = point; (Application.Current.MainWindow as MainWindow).Progress.Value += pointss + 1; if (pers != null) { pers.setLocation(point); pers.getMarker().Position = point; } }); Thread.Sleep(300); } // отправка события о прибытии после достижения последней точки маршрута if (pers == null) { Arrived?.Invoke(this, null); } else { pers.endOfJourney(); pers = null; } }
public void passengerSeated(object sender, EventArgs e) { pers = (CPers)sender; Application.Current.Dispatcher.Invoke(delegate { // gMap.Markers.Add(moveTo(pers.getDestination())); (Application.Current.MainWindow as MainWindow).Progress.Value = 0; }); Application.Current.Dispatcher.Invoke(delegate { gMap.Markers.Add(moveTo(pers.getDestination())); }); //Application.Current.Dispatcher.Invoke((Application.Current.MainWindow as MainWindow).Progress.Value = 0;); }
public void setPerson(CPers pers) { this.pers = pers; }