SITOutdoorLocationOptions

Objective-C

@interface SITOutdoorLocationOptions : NSObject <NSCopying>

Swift

class SITOutdoorLocationOptions : NSObject, NSCopying

Outdoor location options used only in indoor-outdoor mode

  • Building detector strategy to find the building to start the indoor positioning

    Declaration

    Objective-C

    @property (nonatomic) kSITBuildingDetector buildingDetector;

    Swift

    var buildingDetector: kSITBuildingDetector { get set }
  • Controls whether outdoor positions should be used per the location engine. Default value: YES @Discussion: this flag is incompatible with the @link kSITBuildingDetector#kSITGpsProximity building detector option. If those parameters are requested the location engine will raise an error and stop. When this option is disabled (false value) outdoor locations won’t be sent though location listener nor they will be uploaded to the realtime/historic dashboard.

    Declaration

    Objective-C

    @property (nonatomic) BOOL enableOutdoorPositions;

    Swift

    var enableOutdoorPositions: Bool { get set }
  • Minimum accuracy required, in meters, for an outdoor position to be returned through the LocationManager delegate. Default value is zero, so all locations will be returned regardless of its accuracy. This parameter only accepts positive values. If a negative value is used, it will be ignored.

    Declaration

    Objective-C

    @property (nonatomic) NSInteger minimumOutdoorLocationAccuracy;

    Swift

    var minimumOutdoorLocationAccuracy: Int { get set }
  • Controls if the building selection stage should take into account building detection geofences. These building detection geofences are configured from the dashboard and must have a custom field with the key “trainer_metadata” and value “{ "passable”:“True”, “use_gps”:“True”}“. This mode is useful only for a buildingDetector of type kSITBLE. When activating this mode you should set SITLocationRequest.useGps to YES in the SITLocationRequest in order obtain proper locations inside these building detection geofences.

    Declaration

    Objective-C

    @property (nonatomic) BOOL useGeofencesInBuildingSelector;

    Swift

    var useGeofencesInBuildingSelector: Bool { get set }
  • Determines how often the SDK requests new outdoor location updates from Core Location.

    @note Unit: milliseconds.

    @note Default value: 0.

    Overview

    This property controls how often the SDK computes outdoor locations by requesting new location updates from Core Location.

    Increasing this interval reduces GPS usage and battery consumption. As a consequence, outdoor locations are computed less frequently, delivered to the application less often, become eligible for upload less frequently, and GPS-based and geofence-based building detection may react more slowly.

    Accepted Values

    • 0: Keep Core Location running continuously and receive location updates as they become available.
    • Greater than 0: Request new location updates approximately once per configured interval.

    Implementation Notes

    When a positive interval is configured, the SDK stops Core Location after obtaining a location and restarts it when the next location update is due.

    Restarting Core Location is not instantaneous and typically takes between 5 and 15 seconds before a new location becomes available. As a result, configuring intervals shorter than the restart time may not increase the effective update rate and can even delay successive location updates.

    As a general guideline, intervals of 15 seconds or longer provide more predictable behavior.

    SITLocationRequest.outdoorOptions.updateInterval determines how often those computed outdoor locations are delivered to the application and become eligible for upload to Situm Platform. Use this property when your primary goal is to reduce the number of locations uploaded to the Situm Platform rather than to reduce battery consumption.

    SITLocationRequest.realtimeUpdateInterval determines when eligible outdoor location updates are uploaded to Situm Platform. It does not affect how often outdoor locations are computed.

    Declaration

    Objective-C

    @property (nonatomic) NSInteger computeInterval;

    Swift

    var computeInterval: Int { get set }
  • Determines how often computed outdoor locations are delivered to the application and become eligible for upload to Situm Platform.

    @note Unit: milliseconds.

    @note Default value: 0.

    Overview

    This property controls how often computed outdoor locations are delivered to the application through SITLocationDelegate -locationManager:didUpdateLocation:.

    Only the outdoor locations delivered according to this interval become eligible for upload to Situm Platform. Therefore, increasing this interval reduces the amount of location data stored in Situm Platform.

    It does not affect how often outdoor locations are computed. As a result, changing this value does not affect GPS usage, battery consumption, or building detection.

    Accepted Values

    • 0: Deliver each computed outdoor location immediately.
    • Greater than 0: Deliver the latest computed outdoor location at approximately the configured interval. If no new outdoor location has been computed since the previous update, the previously delivered location is delivered again.

    @warning

    When both this property and SITLocationRequest.outdoorOptions.computeInterval are 0, every outdoor location computed by Core Location becomes eligible for upload. If SITLocationRequest.realtimeUpdateInterval is not kSITUpdateNever, this can generate multiple uploaded locations per second while the device is moving.

    SITLocationRequest.outdoorOptions.computeInterval determines how often outdoor locations are computed. Use that property to reduce GPS usage or battery consumption.

    This property provides the outdoor equivalent of SITLocationRequest.interval, which determines how often indoor location updates are delivered to the application and become eligible for upload to Situm Platform.

    SITLocationRequest.realtimeUpdateInterval determines when eligible outdoor location updates are uploaded to Situm Platform.

    Declaration

    Objective-C

    @property (nonatomic) NSInteger updateInterval;

    Swift

    var updateInterval: Int { get set }
  • This property determines the accuracy you require for outdoor positions when the app is in background. This property will be applied only if your app has any Background Location Update Mode enabled.

    Default value is kSITBackgroundAccuracyHigh

    Declaration

    Objective-C

    @property (nonatomic) kSITBackgroundAccuracy backgroundAccuracy;

    Swift

    var backgroundAccuracy: kSITBackgroundAccuracy { get set }
  • Compares the receiving outdoorLocationOptions to another outdoorLocationOptions

    Declaration

    Objective-C

    - (BOOL)isEqualTo:(SITOutdoorLocationOptions *_Nonnull)options;

    Swift

    func isEqual(to options: SITOutdoorLocationOptions) -> Bool

    Parameters

    options

    SITOutdoorLocationOptions The instance to compare with the receiver

    Return Value

    YES if options is equivalent to the receiving outdoorLocationOptions, otherwise NO.

  • Mix values between two objects.

    Note

    you should not use this method directly.

    Declaration

    Objective-C

    - (SITOutdoorLocationOptions *_Nonnull)merge:
        (SITOutdoorLocationOptions *_Nonnull)options;

    Swift

    func merge(_ options: SITOutdoorLocationOptions) -> SITOutdoorLocationOptions

    Return Value

    new `SITOutdoorLocationOptions’ object.