MapKit MKMapView restore

After displaying a map, the user can pan, zoom, change the heading, and change the pitch (for a 3D view). I want to let the user save those details so I can restore that view of the map later. I save all the data I think I need in an “attraction” object. Below is the code I use to restore the view. It gets close to the original map state, but it’s off by a bit. What could I be missing?

        let center = CLLocationCoordinate2D(
            latitude: attraction.latitude,
            longitude: attraction.longitude
        )
        let region = MKCoordinateRegion(
            center: center,
            latitudinalMeters: attraction.latitudeDelta,
            longitudinalMeters: attraction.longitudeDelta
        )
        mapView.setRegion(region, animated: true)

        mapView.camera.heading = attraction.heading
        mapView.camera.pitch = attraction.pitch