← Files MapboxARCHIVED FILE
skills/mapbox-ios-patterns/references/location-tracking.md
1.66 KB · Sep 30, 2026 · 23:11 UTC
# Location Tracking: Camera Follow User + Get Current Location
Advanced location patterns beyond basic user location display (covered in SKILL.md).
---
## Camera Follow User Location
To make the camera follow the user's location as they move:
```swift
import Combine
class MapViewController: UIViewController {
private var mapView: MapView!
private var cancelables = Set<AnyCancellable>()
override func viewDidLoad() {
super.viewDidLoad()
setupMap()
setupLocationTracking()
}
func setupLocationTracking() {
// Request permissions
let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()
// Show user location
mapView.location.options.puckType = .puck2D()
mapView.location.options.puckBearingEnabled = true
// Follow user location with camera
mapView.location.onLocationChange.observe { [weak self] locations in
guard let self = self, let location = locations.last else { return }
self.mapView.camera.ease(to: CameraOptions(
center: location.coordinate,
zoom: 15,
bearing: location.course >= 0 ? location.course : nil,
pitch: 45
), duration: 1.0)
}.store(in: &cancelables)
}
}
```
## Get Current Location Once
```swift
if let location = mapView.location.latestLocation {
let coordinate = location.coordinate
print("User at: \(coordinate.latitude), \(coordinate.longitude)")
// Move camera to user location
mapView.camera.ease(to: CameraOptions(
center: coordinate,
zoom: 14
), duration: 1.0)
}
```
SHA-256: 8fd73740b141b7ea908e08fba6ee0943f43e815f4059a63ee3ae3f12591d1baf