void geolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
        {
            Dispatcher.BeginInvoke(() =>
            {
                //LatitudeTextBlock.Text = args.Position.Coordinate.Latitude.ToString("0.00000000");
                //LongitudeTextBlock.Text = args.Position.Coordinate.Longitude.ToString("0.00000000");

                GeoCoordinate currentCoordinate = new GeoCoordinate(args.Position.Coordinate.Latitude,
                                                                    args.Position.Coordinate.Longitude);
                currCoordinate = currentCoordinate;

                MainMap.SetView(currentCoordinate, MainMap.ZoomLevel);

                HeadingPath.Visibility    = Visibility.Visible;
                SecretTestPath.Visibility = Visibility.Visible;

                GeoCoordinate diamondCoordinate = new GeoCoordinate(StaticViewModel.MapViewModel.currentPlace.Latitude,
                                                                    StaticViewModel.MapViewModel.currentPlace.Longitude);

                if (StaticMethod.Distance(currentCoordinate, diamondCoordinate) <= 0.1)
                {
                    DiamondControl tempDiamondControl = diamondOverlay.Content as DiamondControl;
                    tempDiamondControl.ChangeColor();

                    CollectGrid.Visibility = Visibility.Visible;
                }
                else
                {
                    CollectGrid.Visibility = Visibility.Collapsed;
                }
            });
        }
 private void MainMap_OnCenterChanged(object sender, MapCenterChangedEventArgs e)
 {
     if (geolocator.LocationStatus == PositionStatus.Ready)
     {
         if (StaticMethod.Distance(currCoordinate, MainMap.Center) > 0.2)
         {
             HeadingPath.Visibility    = Visibility.Collapsed;
             SecretTestPath.Visibility = Visibility.Collapsed;
         }
         else
         {
             HeadingPath.Visibility    = Visibility.Visible;
             SecretTestPath.Visibility = Visibility.Visible;
         }
     }
 }
        private async Task AddToCollection()
        {
            StaticData._stationCollection = new ObservableCollection <StationTotal>();
            UTMConverter  utmConverter = new UTMConverter();
            MessageDialog msg          = new MessageDialog("Location Service is not available!", "Error");

            try
            {
                var pos = await _geolocator.GetGeopositionAsync();

                if (pos != null)
                {
                    Location            location = new Location(pos.Coordinate.Latitude, pos.Coordinate.Longitude);
                    LocationPointWithId a        = new LocationPointWithId();
                    a.latitude  = pos.Coordinate.Latitude;
                    a.longitude = pos.Coordinate.Longitude;
                    LocationPointWithId temp = new LocationPointWithId();

                    foreach (StationTotal b in StaticData._stationTotal)
                    {
                        utmConverter.ToLatLon(b.latitude, b.longitude, 48, 0);
                        temp.latitude  = utmConverter.Latitude;
                        temp.longitude = utmConverter.Longitude;

                        if (StaticMethod.Distance(a, temp) < StaticData.defaultDistance)
                        {
                            StaticData._stationCollection.Add(b);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                MessageDialog messageDialog = new MessageDialog("Error: " + exception.Message);
                messageDialog.ShowAsync();
                //return;
            }
        }
        private async Task AddToCollectionWithCustomLocation(Location location)
        {
            StaticData._stationCollection = new ObservableCollection <StationTotal>();
            UTMConverter utmConverter = new UTMConverter();

            LocationPointWithId a = new LocationPointWithId();

            a.latitude  = location.Latitude;
            a.longitude = location.Longitude;

            LocationPointWithId temp = new LocationPointWithId();

            foreach (StationTotal b in StaticData._stationTotal)
            {
                utmConverter.ToLatLon(b.latitude, b.longitude, 48, 0);
                temp.latitude  = utmConverter.Latitude;
                temp.longitude = utmConverter.Longitude;

                if (StaticMethod.Distance(a, temp) < StaticData.defaultDistance)
                {
                    StaticData._stationCollection.Add(b);
                }
            }
        }