Ситуация такая -
Есть две координаты: старт и конец. С помощью метода рассчитываю 50 координат как маршрут от старта и до конца -
private func genareRoute(start: YMKPoint, end: YMKPoint) -> [YMKPoint] {
let latResult = end.latitude - start.latitude
let lonResult = end.longitude - start.longitude
var results = [YMKPoint]()
for i in 1...50 {
results.append(YMKPoint(latitude: start.latitude + latResult / 50 * Double(i), longitude: start.longitude + lonResult / 50 * Double(i)))
}
return results
}
Получается, у меня теперь есть массив координат от старта до конца. Теперь, я хочу провести YMKMapObject по карте через массив координат. В моем случае, это YMKPlacemarkMapObject.
Делаю так, но почему-то это работает с непонятной задержкой, либо вообще не видно передвежения по точкам -
func onMapObjectTap(with mapObject: YMKMapObject, point: YMKPoint) -> Bool {
if let placemark = mapObject as? YMKPlacemarkMapObject {
let startPoint = placemark.geometry
let endPoint = YMKPoint(latitude: 55.639142, longitude: 37.641326)
let coordinates = genareRoute(start: startPoint, end: endPoint)
for i in coordinates {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
placemark.geometry = i
}
}
}
return true
}
Как правильно перемещеать объект на карте? Есть-ли какой-то метод, чтобы сделать передвижение и тд? В документации я ничего не нашел…