Exemplo n.º 1
0
        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();
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
 public GeolocationRequirements(
     TimeSpan updateInterval,
     LocationAccuracy accuracy = LocationAccuracy.Medium)
 {
     UpdateInterval = updateInterval;
     Accuracy       = accuracy;
 }
Exemplo n.º 6
0
        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));
     }
 }
Exemplo n.º 8
0
 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)));
            }
Exemplo n.º 11
0
        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());
        }
Exemplo n.º 13
0
        /// <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();
        }
Exemplo n.º 16
0
 public void StartLocationUpdates(LocationAccuracy accuracy, double smallestDisplacementMeters,
                                  TimeSpan?interval = null, TimeSpan?fastestInterval = null)
 {
 }
Exemplo n.º 17
0
        public void Start(LocationAccuracy desiredAccuracy)
        {
            _geolocator.DesiredAccuracy = desiredAccuracy.ToPositionAccuracy();
            _geolocator.StatusChanged += _geolocator_StatusChanged;
            _geolocator.PositionChanged += _geolocator_PositionChanged;

#if WINDOWS_PHONE
            _geolocator.DesiredAccuracyInMeters = null;
#endif

        }
Exemplo n.º 18
0
 /// <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;
 }
Exemplo n.º 19
0
        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;
            }
        }