Я полагаю, вы использовали следующий делегат для получения последней позиции?
func locationManager(manager: CLLocationManager!,
didUpdateToLocation newlocation: CLLocation!,
fromLocation oldLocation: CLLocation!) {
Упомянутый выше делегат устарел в iOS 6. Теперь следует использовать следующее:
func locationManager(_ manager: CLLocationManager,
didUpdateLocations locations: [CLLocation]) {
Чтобы получить последнюю позицию, просто получите последний объект массива:
locations.lastObject
Попробуйте нарисовать маршрут пользователя с помощью следующего кода:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let newLocation = locations.last else {
return
}
guard let oldLocation = oldLocation else {
// Save old location
self.oldLocation = newLocation
return
}
let oldCoordinates = oldLocation.coordinate
let newCoordinates = newLocation.coordinate
var area = [oldCoordinates, newCoordinates]
let polyline = MKPolyline(coordinates: &area, count: area.count)
mapView.add(polyline)
// Save old location
self.oldLocation = newLocation
}