public void DoWork(IEnumerable <JObject> data) { DateTime date = GetRandomDate(); double accuracy = GetRandomAccuracy(); int count = 0; foreach (JObject obj in data) { double objAccuracy = (double)obj.Property("accuracy").Value; string objDateString = (string)obj.Property("time").Value; DateTime objDateTime = DateTime.Parse(objDateString); if (objAccuracy >= accuracy && objDateTime.CompareTo(date) > 0) { ++count; } } LocationAccuracy locationAccuracy = new LocationAccuracy { Count = count, Accuracy = accuracy, Time = date.ToString("dd-MM-yyyy HH:mm") }; this.locationAccuracyRepository.InsertLocationAccuracy(locationAccuracy); mqttService.PublishMessage("location", JsonConvert.SerializeObject(locationAccuracy)); }
private double GetAccuracyFromSetting(LocationAccuracy locationAccuracy) { switch (locationAccuracy) { case LocationAccuracy.AccuracyBest: return(CLLocation.AccuracyBest); case LocationAccuracy.AccuracyHundredMeters: return(CLLocation.AccuracyBest); case LocationAccuracy.AccuracyKilometer: return(CLLocation.AccuracyBest); case LocationAccuracy.AccuracyNearestTenMeters: return(CLLocation.AccuracyBest); case LocationAccuracy.AccuracyThreeKilometers: return(CLLocation.AccuracyBest); case LocationAccuracy.AccurracyBestForNavigation: return(CLLocation.AccuracyBest); default: throw new ArgumentOutOfRangeException("locationAccuracy", locationAccuracy, "Unknown accuracy setting"); } }
public void StartLocationUpdates(LocationAccuracy accuracy, double smallestDisplacementMeters, TimeSpan?interval = null, TimeSpan?fastestInterval = null) { this.smallestDisplacementMeters = smallestDisplacementMeters; this.accuracy = LocationRequestAccuracy[accuracy]; this.interval = (long)(interval ?? TimeSpan.FromHours(1)).TotalMilliseconds; this.fastestInterval = (long)(fastestInterval ?? TimeSpan.FromMinutes(10)).TotalMilliseconds; if (HandleLocationPermission && context != null && context is Activity) { if (ContextCompat.CheckSelfPermission(context, locationPermission) != (int)Permission.Granted) { if (ShouldShowRequestPermissionRationale && ActivityCompat.ShouldShowRequestPermissionRationale(context as Activity, locationPermission)) { ShowRequestPermissionRationale(); return; } else { RequestPermission(); return; } } } googleApiClient.Connect(); }
public static GeolocationRequest ToGeoLocationRequest(this LocationAccuracy accuracy) { GeolocationAccuracy requiredAccuracy; switch (accuracy) { case LocationAccuracy.High: requiredAccuracy = GeolocationAccuracy.Best; break; case LocationAccuracy.Medium: requiredAccuracy = GeolocationAccuracy.Medium; break; case LocationAccuracy.Low: requiredAccuracy = GeolocationAccuracy.Low; break; default: throw new ArgumentOutOfRangeException(nameof(accuracy), accuracy, null); } return(new GeolocationRequest(requiredAccuracy)); }
public GeolocationRequirements( TimeSpan updateInterval, LocationAccuracy accuracy = LocationAccuracy.Medium) { UpdateInterval = updateInterval; Accuracy = accuracy; }
public async Task <bool> UpdateLocationAccuracy(LocationAccuracy locationAccuracy) { var filter = Builders <LocationAccuracy> .Filter.Eq("_id", locationAccuracy.Id); ReplaceOneResult result = await _context.LocationAccuracies.ReplaceOneAsync(filter, locationAccuracy); return(result.IsAcknowledged); }
public IActionResult Post([FromBody] LocationAccuracy locationAccuracy) { using (var scope = new TransactionScope()) { locationAccuracyRepository.InsertLocationAccuracy(locationAccuracy); scope.Complete(); return(CreatedAtAction(nameof(Get), locationAccuracy)); } }
public async Task InsertLocationAccuracy(LocationAccuracy locationAccuracy) { try { await _context.LocationAccuracies.InsertOneAsync(locationAccuracy); } catch (Exception ex) { // log or manage the exception throw ex; } }
public void StartLocationUpdates(LocationAccuracy accuracy, double smallestDisplacementMeters, TimeSpan?interval = null, TimeSpan?fastestInterval = null) { shouldBeUpdatingLocation = true; locationManager.DesiredAccuracy = CLLocationAccuracy[accuracy]; locationManager.DistanceFilter = smallestDisplacementMeters; locationManager.PausesLocationUpdatesAutomatically = PausesLocationUpdatesAutomatically; if (UIDevice.CurrentDevice.CheckSystemVersion(9, 0) && RequestAlwaysAuthorization) { locationManager.AllowsBackgroundLocationUpdates = true; } TryToStartUpdates(); }
public async Task SHOULD_use_given_accuracy(LocationAccuracy given, GeolocationAccuracy required) { //Arrange MockProxy.Where_GetCurrentLocationAsync_returns(new Location(22, 66, DateTimeOffset.Now)); //Act Sut.Connect(new GeolocationRequirements(TimeSpan.FromTicks(1), given)) .Subscribe(next => { LocationTaskCompletionSource.SetResult(new List <IGpsLocation> { next }); }); await LocationTaskCompletionSource.Task; //Assert MockProxy.Mock.Verify(x => x.GetCurrentLocationAsync(It.Is <GeolocationRequest>(y => y.DesiredAccuracy == required))); }
public void StartLocationUpdates(LocationAccuracy accuracy, double smallestDisplacementMeters, TimeSpan? interval = null, TimeSpan? fastestInterval = null) { if (!CLLocationManager.LocationServicesEnabled) return; if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) { locationManager.RequestWhenInUseAuthorization(); locationManager.RequestAlwaysAuthorization(); } locationManager.DesiredAccuracy = CLLocationAccuracy[accuracy]; locationManager.DistanceFilter = smallestDisplacementMeters; locationManager.StartUpdatingLocation(); Console.WriteLine("[SimpleLocation: Location updates started]"); }
public async Task <IActionResult> Put([FromBody] LocationAccuracy locationAccuracy) { if (locationAccuracy != null) { using (var scope = new TransactionScope()) { bool success = await locationAccuracyRepository.UpdateLocationAccuracy(locationAccuracy); scope.Complete(); if (success) { return(new OkResult()); } return(BadRequest()); } } return(new NoContentResult()); }
/// <summary> /// Convert our generic accuracy into nearest android versions. /// </summary> /// <returns></returns> private int GetPriority(LocationAccuracy accuracy) { switch (accuracy) { case LocationAccuracy.Best: case LocationAccuracy.TenMeters: return(LocationRequest.PriorityHighAccuracy); case LocationAccuracy.HundredMeters: case LocationAccuracy.Kilometer: return(LocationRequest.PriorityBalancedPowerAccuracy); case LocationAccuracy.ThreeKilometers: return(LocationRequest.PriorityLowPower); default: return(LocationRequest.PriorityLowPower); } }
private double GetAccuracyFromSetting(LocationAccuracy locationAccuracy) { switch (locationAccuracy) { case LocationAccuracy.AccuracyBest: return CLLocation.AccuracyBest; case LocationAccuracy.AccuracyHundredMeters: return CLLocation.AccuracyBest; case LocationAccuracy.AccuracyKilometer: return CLLocation.AccuracyBest; case LocationAccuracy.AccuracyNearestTenMeters: return CLLocation.AccuracyBest; case LocationAccuracy.AccuracyThreeKilometers: return CLLocation.AccuracyBest; case LocationAccuracy.AccurracyBestForNavigation: return CLLocation.AccuracyBest; default: throw new ArgumentOutOfRangeException("locationAccuracy", locationAccuracy , "Unknown accuracy setting"); } }
public void StartLocationUpdates(LocationAccuracy accuracy, double smallestDisplacementMeters, TimeSpan? interval = null, TimeSpan? fastestInterval = null) { this.smallestDisplacementMeters = smallestDisplacementMeters; this.accuracy = LocationRequestAccuracy[accuracy]; this.interval = (long)(interval ?? TimeSpan.FromHours(1)).TotalMilliseconds; this.fastestInterval = (long)(fastestInterval ?? TimeSpan.FromMinutes(10)).TotalMilliseconds; googleApiClient.Connect(); }
public void StartLocationUpdates(LocationAccuracy accuracy, double smallestDisplacementMeters, TimeSpan?interval = null, TimeSpan?fastestInterval = null) { }
public void Start(LocationAccuracy desiredAccuracy) { _geolocator.DesiredAccuracy = desiredAccuracy.ToPositionAccuracy(); _geolocator.StatusChanged += _geolocator_StatusChanged; _geolocator.PositionChanged += _geolocator_PositionChanged; #if WINDOWS_PHONE _geolocator.DesiredAccuracyInMeters = null; #endif }
/// <summary> /// Initializes a new instance of the <see cref="Location"/> class. /// </summary> /// <param name="longitude"> /// The longitude. /// </param> /// <param name="latitude"> /// The latitude. /// </param> /// <param name="accuracy"> /// The accuracy. /// </param> public Location(double longitude, double latitude, LocationAccuracy? accuracy) { this.Accuracy = accuracy; this.Longitude = longitude; this.Latitude = latitude; }
public async Task<Domain.Models.Ui.Map.GeoPosition> GetPositionAsync(LocationAccuracy desiredAccuracy, TimeSpan maximumAge, TimeSpan timeout) { try { _geolocator.DesiredAccuracy = desiredAccuracy.ToPositionAccuracy(); var g = await _geolocator.GetGeopositionAsync(maximumAge, timeout); return g.FromGeoposition(); } catch (Exception ex) { throw ex; } }