Вызов mapView (_: viewFor :) при изменении местоположения пользователя - PullRequest
0 голосов
/ 20 июня 2019

Я хочу, чтобы местоположение пользователя отображалось как пользовательское изображение (не синий маяк). Я также хочу, чтобы всякий раз, когда пользовательское местоположение изменяло свои координаты, это пользовательское изображение поворачивалось соответственно, чтобы представить курс пользователя. Чтобы добиться этого, я реализовал код ниже. Он вызывается с типом аннотации userLocation при запуске приложения, так что пользовательское изображение местоположения пользователя отображается нормально. Проблема заключается в том, что когда я моделирую изменение координат местоположения пользователя, метод mapView делегата (_: viewFor :) никогда не вызывается снова с типом аннотации userLocation, поэтому изображение никогда не поворачивается. (Примечание. UIImage rotateImage (by :) - это пользовательский метод).

Есть ли какие-либо средства для вызова mapView (_: viewFor :), чтобы я мог обновлять аннотацию изображения для местоположения пользователя, когда местоположение пользователя изменяется? Спасибо за любую помощь.

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    if annotation.isEqual(mapView.userLocation) {
        // Annotation image for user location
        let annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: nil)
        annotationView.image = UIImage(named: "UserLocationImage.png")?.rotateImage(by: currentCourse)
        return annotationView  
    }
}

1 Ответ

0 голосов
/ 21 июня 2019

Используйте CLLocationManagerDelegate https://developer.apple.com/documentation/corelocation/cllocationmanagerdelegate Реализуйте этот протокол в своем коде и поместите функцию mapView в метод locationManager (_: didUpdateLocations :).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...