MGLLocationManager
@protocol MGLLocationManager <NSObject>
The MGLLocationManager
protocol defines a set of methods that a class must
implement in order to serve as the location manager of an MGLMapView
. A location
manager is responsible for notifying the map view about location-related events,
such as a change in the user’s location. This protocol is similar to the
Core Location framework’s CLLocationManager
class, but your implementation
does not need to be based on CLLocationManager
.
To receive location updates from an object that conforms to the MGLLocationManager
protocol, use the optional methods available in the MGLLocationManagerDelegate
protocol.
-
Specifies the minimum distance (measured in meters) a device must move horizontally before a location update is generated.
The default value of this property is
kCLDistanceFilterNone
whenMGLMapView
uses its default location manager.See
CLLocationManager.distanceFilter
Declaration
Objective-C
- (CLLocationDistance)distanceFilter;
Swift
optional func distanceFilter() -> CLLocationDistance
-
Sets the minimum update distance in meters.
Declaration
Objective-C
- (void)setDistanceFilter:(CLLocationDistance)distanceFilter;
Swift
optional func setDistanceFilter(_ distanceFilter: CLLocationDistance)
Parameters
distanceFilter
The distance filter in meters.
-
Specifies the accuracy of the location data.
The default value is
kCLLocationAccuracyBest
whenMGLMapView
uses its default location manager.Note
Determining a location with greater accuracy requires more time and more power.
See
CLLocationManager.desiredAccuracy
Declaration
Objective-C
- (CLLocationAccuracy)desiredAccuracy;
Swift
optional func desiredAccuracy() -> CLLocationAccuracy
-
Sets the desired location accuracy.
Declaration
Objective-C
- (void)setDesiredAccuracy:(CLLocationAccuracy)desiredAccuracy;
Swift
optional func setDesiredAccuracy(_ desiredAccuracy: CLLocationAccuracy)
Parameters
desiredAccuracy
The desired location accuracy.
-
Specifies the level of location accuracy the Maps SDK has permission to use.
Note
If the value of this property isCLAccuracyAuthorizationFullAccuracy
, you can set theMGLLocationManager.desiredAccuracy
property to any value. If the value isCLAccuracyAuthorizationReducedAccuracy
, settingMGLLocationManager.desiredAccuracy
to a value other thankCLLocationAccuracyReduced
has no effect on the location information.Declaration
Objective-C
- (CLAccuracyAuthorization)accuracyAuthorization;
Swift
optional func accuracyAuthorization() -> CLAccuracyAuthorization
-
Specifies the type of user activity associated with the location updates.
The location manager uses this property as a cue to determine when location updates may be automatically paused.
The default value is
CLActivityTypeOther
whenMGLMapView
uses its default location manager.See
CLLocationManager.activityType
Declaration
Objective-C
- (CLActivityType)activityType;
Swift
optional func activityType() -> CLActivityType
-
Sets the type of user activity associated with the location updates.
Declaration
Objective-C
- (void)setActivityType:(CLActivityType)activityType;
Swift
optional func setActivityType(_ activityType: CLActivityType)
Parameters
activityType
The location’s manager activity type.
-
Requests the user’s permission to temporarily use location update services with full accuracy.
Note
If the user turned off location accuracy you may use this method to request full accuracy for a session.Declaration
Objective-C
- (void)requestTemporaryFullAccuracyAuthorizationWithPurposeKey: (nonnull NSString *)purposeKey;
Swift
optional func requestTemporaryFullAccuracyAuthorization(withPurposeKey purposeKey: String)
-
The delegate to receive location updates.
Do not set the location manager’s delegate yourself.
MGLMapView
sets this property after the location manager becomesMGLMapView
’s location manager.Declaration
Objective-C
@required @property (nonatomic, weak, readwrite) id<MGLLocationManagerDelegate> _Nullable delegate;
Swift
weak var delegate: MGLLocationManagerDelegate? { get set }
-
Returns the current localization authorization status.
See
+[CLLocationManger authorizationStatus]
Declaration
Objective-C
@required @property (nonatomic, readonly) CLAuthorizationStatus authorizationStatus;
Swift
var authorizationStatus: CLAuthorizationStatus { get }
-
Requests permission to use the location services whenever the app is running.
Declaration
Objective-C
- (void)requestAlwaysAuthorization;
Swift
func requestAlwaysAuthorization()
-
Requests permission to use the location services while the app is in the foreground.
Declaration
Objective-C
- (void)requestWhenInUseAuthorization;
Swift
func requestWhenInUseAuthorization()
-
Starts the generation of location updates that reports the user’s current location.
Declaration
Objective-C
- (void)startUpdatingLocation;
Swift
func startUpdatingLocation()
-
Stops the generation of location updates.
Declaration
Objective-C
- (void)stopUpdatingLocation;
Swift
func stopUpdatingLocation()
-
Specifies a physical device orientation.
Declaration
Objective-C
@required @property (nonatomic, assign, unsafe_unretained, readwrite) CLDeviceOrientation headingOrientation;
Swift
var headingOrientation: CLDeviceOrientation { get set }
-
Starts the generation of heading updates that reports the user’s current hading.
Declaration
Objective-C
- (void)startUpdatingHeading;
Swift
func startUpdatingHeading()
-
Stops the generation of heading updates.
Declaration
Objective-C
- (void)stopUpdatingHeading;
Swift
func stopUpdatingHeading()
-
Dissmisses immediately the heading calibration view from screen.
Declaration
Objective-C
- (void)dismissHeadingCalibrationDisplay;
Swift
func dismissHeadingCalibrationDisplay()