private static async Task LocationAccesser()
{
try
{
var accessStatus = await Geolocator.RequestAccessAsync();
switch (accessStatus)
{
case GeolocationAccessStatus.Allowed:
// If DesiredAccuracy or DesiredAccuracyInMeters are not set (or value is 0), DesiredAccuracy.Default is used.
var geolocator = new Geolocator { DesiredAccuracy = PositionAccuracy.High };
// Carry out the operation
var pos = await geolocator.GetGeopositionAsync();
_latitude = pos.Coordinate.Point.Position.Latitude.ToString();
_longitude = pos.Coordinate.Point.Position.Longitude.ToString();
var location = new BasicGeoposition
{
Latitude = Math.Round(pos.Coordinate.Point.Position.Latitude, 4),
Longitude = Math.Round(pos.Coordinate.Point.Position.Longitude, 4)
};
break;
case GeolocationAccessStatus.Denied:
Debug.WriteLine("Access Denied!");
break;
case GeolocationAccessStatus.Unspecified:
Debug.WriteLine("Unspecified");
break;
default:
throw new ArgumentOutOfRangeException();
}
}
catch (Exception e)
{
Debug.WriteLine(e);
}
}