/// <summary> /// Find the closest museum near the user /// </summary> /// @author Gabriele Ursini private async Task findClosestMuseumAsync(positionWrapper position) { if (latestPosition == null) { latestPosition = position; } else { if (position.getDistance(latestPosition.position) >= DISTANCE_BEFORE_RECOMPUTATION) { latestPosition = position; } else { return; } } var museumRequest = await PersistanceStorage.PersistanceStorage.Instance.getClosestMuseumAsync(new PersistanceStorage.PersistanceStorage.requestWrapper() { lat = latestPosition.position.Latitude, lon = latestPosition.position.Longitude, }); current = museumRequest.getMuseum(); if (current != null) { System.System.Instance.vibrate(); pageStack.Children.Add(museum_view = new view_Museum(this.current)); } }
/// <summary> /// Handle the change of position. /// </summary> /// @author Gabriele Ursini private async void HandlePositionChanged(object sender, PositionEventArgs e) { positionWrapper new_position = new positionWrapper() { position = new Xamarin.Essentials.Location(e.Position.Latitude, e.Position.Longitude) }; await this.findClosestMuseumAsync(new_position); }