Camera Control + Map Styles
Camera Control
Set Camera Position
// SwiftUI - Update viewport state
viewport = .camera(
center: CLLocationCoordinate2D(latitude: 40.7128, longitude: -74.0060),
zoom: 14,
bearing: 90,
pitch: 60
)
// UIKit - Immediate
mapView.mapboxMap.setCamera(to: CameraOptions(
center: CLLocationCoordinate2D(latitude: 40.7128, longitude: -74.0060),
zoom: 14,
bearing: 90,
pitch: 60
))Animated Camera Transitions
// Fly animation (dramatic arc)
mapView.camera.fly(to: CameraOptions(
center: destination,
zoom: 15
), duration: 2.0)
// Ease animation (smooth)
mapView.camera.ease(to: CameraOptions(
center: destination,
zoom: 15
), duration: 1.0)Fit Camera to Coordinates
let coordinates = [coord1, coord2, coord3]
let camera = mapView.mapboxMap.camera(for: coordinates,
padding: UIEdgeInsets(top: 50, left: 50, bottom: 50, right: 50),
bearing: 0,
pitch: 0)
mapView.camera.ease(to: camera, duration: 1.0)Map Styles
Built-in Styles
// SwiftUI
Map(viewport: $viewport)
.mapStyle(.standard) // Mapbox Standard (recommended)
.mapStyle(.streets) // Mapbox Streets
.mapStyle(.outdoors) // Mapbox Outdoors
.mapStyle(.light) // Mapbox Light
.mapStyle(.dark) // Mapbox Dark
.mapStyle(.standardSatellite) // Satellite imagery
// UIKit
mapView.mapboxMap.loadStyle(.standard)
mapView.mapboxMap.loadStyle(.streets)
mapView.mapboxMap.loadStyle(.dark)Custom Style URL
// SwiftUI
Map(viewport: $viewport)
.mapStyle(MapStyle(uri: StyleURI(url: customStyleURL)!))
// UIKit
mapView.mapboxMap.loadStyle(StyleURI(url: customStyleURL)!)Style from Mapbox Studio:
let styleURL = URL(string: "mapbox://styles/username/style-id")!