MapKit
MapKit
Show maps and annotations with MapKit, request user location with Core Location, and render routes.
Basic Map (Region)
Display a map by binding a coordinate region. Import MapKit to use Map in SwiftUI.
Syntax:
- @State private var position: MapCameraPosition = .region(MKCoordinateRegion(...))
- Map(position: $position)
Example
import SwiftUI
import MapKit
struct BasicMap: View {
  @State private var position: MapCameraPosition = .region(
    MKCoordinateRegion(
      center: CLLocationCoordinate2D(latitude: 37.3349, longitude: -122.0090),
      span: MKCoordinateSpan(latitudeDelta: 0.05, longitudeDelta: 0.05)
    )
  )
  var body: some View {
    Map(position: $position)
      .ignoresSafeArea()
  }
}import SwiftUI
struct ContentView: View {
  var body: some View { BasicMap() }
}import SwiftUI
@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}This example centers the map on Apple Park with a modest zoom.
Annotations
Add markers or custom annotations at specific coordinates.
Syntax:
- @State private var position: MapCameraPosition = .region(MKCoordinateRegion(...))
- Map(position: $position) { Marker("Title", coordinate: ...) }
- Annotation("Title", coordinate: ...) { View }
Example
import SwiftUI
import MapKit
struct MarkersMap: View {
  @State private var position: MapCameraPosition = .region(
    MKCoordinateRegion(
      center: CLLocationCoordinate2D(latitude: 37.3349, longitude: -122.0090),
      span: MKCoordinateSpan(latitudeDelta: 0.05, longitudeDelta: 0.05)
    )
  )
  let places = [
    ("Park", CLLocationCoordinate2D(latitude: 37.3349, longitude: -122.0090)),
    ("Cafe", CLLocationCoordinate2D(latitude: 37.3327, longitude: -122.0053))
  ]
  var body: some View {
    Map(position: $position) {
      ForEach(places, id: \.0) { name, coord in
        Marker(name, coordinate: coord)
      }
    }
  }
}import SwiftUI
struct ContentView: View {
  var body: some View { MarkersMap() }
}import SwiftUI
@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}This example adds two simple markers around the region.
Open in Maps
Use MKMapItem to open a location or directions in the Apple Maps app.
Syntax:
- let item = MKMapItem(placemark:)
- item.openInMaps(launchOptions:)
Example
import MapKit
func openDirections() {
  let dest = MKMapItem(placemark: MKPlacemark(coordinate: .init(latitude: 37.3349, longitude: -122.0090)))
  dest.name = "Apple Park"
  dest.openInMaps(launchOptions: [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving])
}import SwiftUI
struct ContentView: View {
  var body: some View {
    Button("Open Directions") { openDirections() }
      .padding()
  }
}import SwiftUI
@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}This example opens Apple Maps with driving directions to the destination coordinate.
Tip: Ask for location permissions before using user location in maps.
 
