public TrackingViewModel(IMasterNavigationService masterNavigationService, IPageService pageService, IPositionService positionService) { //init display public vars UserPosition = new Xamarin.Forms.Maps.Position(); counter = 0; //SetHighlightedRoute(); //for DEMO, init pin at first position //VehiculePositionPins.Add(new Pin() { Position = new Xamarin.Forms.Maps.Position(coordinatesX[0], coordinatesY[0]), Type = PinType.Generic, Label = "Navette autonome" }); VehiculePositionPins.Add(new Pin() { Position = new Xamarin.Forms.Maps.Position(45.378963, -71.927798), Type = PinType.Generic, Label = "Navette autonome" }); //UserPosition = new Xamarin.Forms.Maps.Position(coordinatesX[3], coordinatesY[3]); UserPosition = new Xamarin.Forms.Maps.Position(45.378963, -71.927798); //init private vars _navigationService = masterNavigationService; _pageService = pageService; _positionService = positionService; /* * SetPositionsCommand = new Command(async () => await SetPositions()); * timer = new System.Timers.Timer(); * timer.Interval = 2000; * * timer.Elapsed += OnTimedEvent; * timer.AutoReset = true; * timer.Enabled = true;*/ }
//methods private async Task SetPositions() { if (VehiculePositionPins != null) { if (VehiculePositionPins.Count > 0) { VehiculePositionPins.Clear(); } var response = await _positionService.getCurrentPosition(); VehiculePositionPins.Add(new Pin() { Position = new Xamarin.Forms.Maps.Position(response.Latitude, response.Longitude), Type = PinType.Generic, Label = "Navette autonome" }); UserPosition = new Xamarin.Forms.Maps.Position(response.Latitude, response.Longitude); } }
private void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e) { if (VehiculePositionPins.Count > 0) { VehiculePositionPins.Clear(); } VehiculePositionPins.Add(new Pin() { Position = new Xamarin.Forms.Maps.Position(coordinatesX[counter], coordinatesY[counter]), Type = PinType.Generic, Label = "Navette autonome" }); UserPosition = new Xamarin.Forms.Maps.Position(coordinatesX[3], coordinatesY[3]); if (counter < coordinatesX.Length - 1) { counter++; } else { timer.Stop(); _pageService.DisplayAlert("test", "timer stopped", "OK"); } }