Advertisement
McFamous

Untitled

Jan 24th, 2024
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. var routesCollection: YMKMapObjectCollection!
  2. var currentRoutesCollection: YMKMapObjectCollection?
  3. var routes: [YMKDrivingRoute] = [] {
  4. didSet {
  5. if routes.isEmpty {
  6. clearRoutesCollection()
  7. return
  8. }
  9.  
  10. let routesCollection = self.routesCollection.add()
  11. routes.enumerated()
  12. .forEach {
  13. let route = $0.element
  14. let routePolyline = routesCollection.addPolyline(with: route.geometry)
  15. routePolyline.setStrokeColorWith(ColorScheme.routeColor)
  16. routePolyline.addTapListener(with: self)
  17. routePolyline.userData = route.routeId
  18. routePolyline.zIndex = 5
  19.  
  20. if $0.offset == 0 {
  21. viewModel.currentRouteDistance.accept(route.metadata.weight.distance.text)
  22. routePolyline.setStrokeColorWith(ColorScheme.tealBlue)
  23. routePolyline.zIndex += 5
  24. self.moveToSelectedRoute(with: routePolyline.geometry)
  25.  
  26. if Int(route.routePosition.timeToFinish() / 60) > 0 {
  27. let routePoints = route.geometry.points
  28. let halfOfRoutePoint = routePoints[routePoints.count / 2]
  29. let durationTitle = route.metadata.weight.timeWithTraffic.text
  30. routeDescriptionView.setTitle(durationTitle, for: .normal)
  31. routeDescriptionView.sizeToFit()
  32.  
  33. routesCollection.addPlacemark(
  34. with: halfOfRoutePoint,
  35. view: YRTViewProvider(uiView: routeDescriptionView))
  36. }
  37. }
  38. }
  39.  
  40. if let currentRoutesCollection = self.currentRoutesCollection {
  41. DispatchQueue.main.async { self.routesCollection.remove(with: currentRoutesCollection) }
  42. }
  43. currentRoutesCollection = routesCollection
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement