---
title: "MTLocationManager | Mobile sdk | Mobile sdk ios | Ios"
description: "Class responsible for location updates."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# MTLocationManager

```
public class MTLocationManager : NSObject, @preconcurrency CLLocationManagerDelegate
```

Class responsible for location updates.

-   `[init(using:accuracy:)](#/s:11MapTilerSDK17MTLocationManagerC5using8accuracyACSo010CLLocationE0CSg_SdSgtcfc)`
    
    Initializes the location manager.
    
    #### Declaration
    
    Swift
    
    ```
    public init(using manager: CLLocationManager? = nil, accuracy: CLLocationAccuracy? = nil)
    ```
    
-   `[startLocationUpdates()](#/s:11MapTilerSDK17MTLocationManagerC20startLocationUpdatesyyF)`
    
    Starts the location updates.
    
    Updates are available in didUpdateLocations method.
    
    #### Declaration
    
    Swift
    
    ```
    public func startLocationUpdates()
    ```
    
-   `[requestLocationOnce()](#/s:11MapTilerSDK17MTLocationManagerC19requestLocationOnceyyF)`
    
    Requests location only once and calls didUpdateLocations delegate method.
    
    #### Declaration
    
    Swift
    
    ```
    public func requestLocationOnce()
    ```
    
-   `[stopLocationUpdates()](#/s:11MapTilerSDK17MTLocationManagerC19stopLocationUpdatesyyF)`
    
    Stops the location updates.
    
    #### Declaration
    
    Swift
    
    ```
    public func stopLocationUpdates()
    ```
    
-   `[requestLocationPermission()](#/s:11MapTilerSDK17MTLocationManagerC25requestLocationPermissionyyF)`
    
    Requests whenInUse location permission.
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public func requestLocationPermission()
    ```
    
-   `[requestAlwaysLocationPermission()](#/s:11MapTilerSDK17MTLocationManagerC31requestAlwaysLocationPermissionyyF)`
    
    Requests always location permission.
    
    Make sure whenInUse location permission is active first.
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public func requestAlwaysLocationPermission()
    ```
    
-   `[locationManager(_:didUpdateLocations:)](#/c:@M@MapTilerSDK@objc\(cs\)MTLocationManager\(im\)locationManager:didUpdateLocations:)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
    ```
    
-   `[locationManager(_:didFailWithError:)](#/c:@M@MapTilerSDK@objc\(cs\)MTLocationManager\(im\)locationManager:didFailWithError:)`
    
    Undocumented
    
    #### Declaration
    
    Swift
    
    ```
    @MainActor
    public func locationManager(_ manager: CLLocationManager, didFailWithError error: Error)
    ```
