Example #1
0
        /// <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));
            }
        }
Example #2
0
        /// <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);
        }