Как правильно добавить маршрут к тренировке в HealthKit. Я всегда получаю результаты, когда маршрут не является непрерывным, см. маршрут в HK
Сначала я создаю массив CLLocations
// DISTANCE - ROUTE
for location in workout.samples {
if location.latitude.value == nil {
continue
}
let coordinates = CLLocationCoordinate2DMake(location.latitude.value ?? 0.0, location.longitude.value ?? 0.0)
let altitude = location.altitude.value ?? 0.0
let speed = location.speed.value ?? 0.0
let course = location.course.value ?? 0.0
let timestamp = location.timestamp
let accuracy = kCLLocationAccuracyBestForNavigation
let coreLocation = CLLocation(coordinate: coordinates, altitude: altitude, horizontalAccuracy: accuracy, verticalAccuracy: accuracy, course: course, speed: speed, timestamp: timestamp)
locations.append(coreLocation)
}
А затем однажды вставляю массив в RouteBuilder и FinishRoute, см.
if workout.existDistance() {
routeBuilder.insertRouteData(locations) { (state, error) in
print (error ?? "no error inserting data to route")
routeBuilder.finishRoute(with: workoutHK, metadata: nil) { (completion, error) in
print(error ?? "no error finishing route")
}
}
}
healthStore.save(workoutHK) { (finished, error) in
if finished {
self.healthStore.add(samples, to: workoutHK) { (completion, error) in
print (error ?? "no error adding samples")
}
completion(true)
print(error ?? "no error saving workout")
} else {
completion(false)
}
}
. Когда я экспортирую образцы своего местоположения в GPX и использую другое приложение для сохранения тренировки в HealthKit, он работает нормально, поэтому сами данные должны быть в порядке, я пробовал уже другой CLLocation inits, но ничего не помогает.