/// <summary> /// intenta buscar la ubicacion actual /// utilizando el gps. /// </summary> /// <param name="geolocator"></param> /// <param name="timeout"></param> /// <returns></returns> private async Task <LocationResult> GetGPSPosition() { var request = new GeolocationRequest(GeolocationAccuracy.Best); var position = await Geolocation.GetLocationAsync(request); return((position is null) ? LocationResult.Fail(msg: "No se pudo obtener la ubicación del gps") : LocationResult.Done(position: position)); }
/// <summary> /// en caso que la ubicacion ya se haya encontrado retorna la posicion cacheada /// en caso que no exista la intenta buscar con el gps. /// </summary> /// <param name="geolocator"></param> /// <param name="timeout"></param> /// <returns></returns> private async Task <LocationResult> GetCachedPosition( ) { var position = await Geolocation.GetLastKnownLocationAsync(); if (position is null) { return(await GetGPSPosition()); } return(LocationResult.Done(position: position)); }