Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var routesCollection: YMKMapObjectCollection!
- var currentRoutesCollection: YMKMapObjectCollection?
- var routes: [YMKDrivingRoute] = [] {
- didSet {
- if routes.isEmpty {
- clearRoutesCollection()
- return
- }
- let routesCollection = self.routesCollection.add()
- routes.enumerated()
- .forEach {
- let route = $0.element
- let routePolyline = routesCollection.addPolyline(with: route.geometry)
- routePolyline.setStrokeColorWith(ColorScheme.routeColor)
- routePolyline.addTapListener(with: self)
- routePolyline.userData = route.routeId
- routePolyline.zIndex = 5
- if $0.offset == 0 {
- viewModel.currentRouteDistance.accept(route.metadata.weight.distance.text)
- routePolyline.setStrokeColorWith(ColorScheme.tealBlue)
- routePolyline.zIndex += 5
- self.moveToSelectedRoute(with: routePolyline.geometry)
- if Int(route.routePosition.timeToFinish() / 60) > 0 {
- let routePoints = route.geometry.points
- let halfOfRoutePoint = routePoints[routePoints.count / 2]
- let durationTitle = route.metadata.weight.timeWithTraffic.text
- routeDescriptionView.setTitle(durationTitle, for: .normal)
- routeDescriptionView.sizeToFit()
- routesCollection.addPlacemark(
- with: halfOfRoutePoint,
- view: YRTViewProvider(uiView: routeDescriptionView))
- }
- }
- }
- if let currentRoutesCollection = self.currentRoutesCollection {
- DispatchQueue.main.async { self.routesCollection.remove(with: currentRoutesCollection) }
- }
- currentRoutesCollection = routesCollection
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement