Компас не будет работать на MKMapView, если я использую MKMapCamera

Поэтому я пытаюсь сделать 3 вещи.

  1. Есть карта, которая показывает мое местоположение.
  2. Карта должна быть немного наклонена, чтобы дать ощущение 3d; так же, как когда мы прокручиваем вверх и вниз двумя пальцами на карте яблок.
  3. Используйте компас, чтобы вращать карту.

Я включил userTrackingMode на карте, и карта вращается с компасом, но если я установлю MKMapCamera на карте, компас не будет работать.

Вот мой код

    override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            locationManager.desiredAccuracy = kCLLocationAccuracyBest
            locationManager.delegate = self
            locationManager.requestWhenInUseAuthorization()
            mapView.setUserTrackingMode(.FollowWithHeading, animated: true)
            locationManager.startUpdatingLocation()

        }


func locationManager(manager: CLLocationManager, didUpdateToLocation newLocation: CLLocation, fromLocation oldLocation: CLLocation) {


            let userCordinate = CLLocationCoordinate2D(latitude: newLocation.coordinate.latitude, longitude: newLocation.coordinate.longitude)

            let eyeCordinate = CLLocationCoordinate2D(latitude: newLocation.coordinate.latitude - 0.021078, longitude: newLocation.coordinate.longitude - 0.04078 )



            let mapCamera = MKMapCamera(lookingAtCenterCoordinate: userCordinate, fromEyeCoordinate: eyeCordinate, eyeAltitude: 1400)

            mapView.setCamera(mapCamera, animated: true)
            print("Camera set")

        }

Что я здесь не так делаю?

1 ответ

Вы должны обновить курс камеры с помощью компаса. Вот что я сейчас использую:

func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
        self.mapView.camera.heading = newHeading.trueHeading
}
Другие вопросы по тегам