diff --git a/Findr/Classes/FindrTrackingManager.swift b/Findr/Classes/FindrTrackingManager.swift index a360048..ab2f6f8 100644 --- a/Findr/Classes/FindrTrackingManager.swift +++ b/Findr/Classes/FindrTrackingManager.swift @@ -51,8 +51,13 @@ open class FindrTrackingManager: NSObject, CLLocationManagerDelegate } } + /** + * Specifies in metters the accuracy limit acceptable for a user location. + */ + open var maximumAcuracyAllowed: CLLocationAccuracy = 400 open var motionManager: CMMotionManager = CMMotionManager() + //===== Internal variables fileprivate(set) internal var locationManager: CLLocationManager = CLLocationManager() @@ -171,15 +176,16 @@ open class FindrTrackingManager: NSObject, CLLocationManagerDelegate let location = locations[0] // Disregarding old and low quality location detections - let age = location.timestamp.timeIntervalSinceNow; - if age < -30 || location.horizontalAccuracy > 500 || location.horizontalAccuracy < 0 + let age = location.timestamp.timeIntervalSinceNow + if age < -30 || location.horizontalAccuracy > maximumAcuracyAllowed || location.horizontalAccuracy < 0 { print("Disregarding location: age: \(age), ha: \(location.horizontalAccuracy)") return } - //println("== \(location!.horizontalAccuracy), \(age) \(location!.coordinate.latitude), \(location!.coordinate.longitude)" ) self.userLocation = location + + //println("== \(location!.horizontalAccuracy), \(age) \(location!.coordinate.latitude), \(location!.coordinate.longitude)" ) // Setting altitude to 0 if altitudeSensitive == false if self.userLocation != nil && !self.altitudeSensitive