Проблема Sygic: сделать маршрут невидимым при создании альтернативного маршрута - PullRequest
0 голосов
/ 14 ноября 2018

Я хотел бы скрыть карту маршрута, когда выбираю новое место назначения. Проблема сейчас в том, что держите меня на всех самых старых маршрутах. это часть моего кода, которая рисует маршрут каждый раз, когда пользователь нажимает на карту.

 override func viewDidLoad() {
        super.viewDidLoad()
        mapView.delegate = self
        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.tapped(_:)))
        mapView.addGestureRecognizer(tapGestureRecognizer)
    }

@objc func tapped (_ recognizer: UITapGestureRecognizer) {
        // Get point on screen
        let point = recognizer.location(in: mapView)

        // Convert point to NSValue
        let value = NSValue(cgPoint: point)

        // Get coordinates for point from screen
        let coordinates = mapView.geoCoordinates(fromScreenPoints: [value])
        // now handle the coordinates, as you wish
        endPointMP = SYGeoCoordinate(latitude: coordinates[0].latitude, longitude:coordinates[0].longitude)
        let markerEnd = SYMapMarker(coordinate: endPointMP!, image: UIImage(named: "Arrive")!)
        startPointMP = SYGeoCoordinate(latitude: SYPositioning.shared().lastKnownLocation?.coordinate?.latitude ?? 0, longitude:  SYPositioning.shared().lastKnownLocation?.coordinate?.longitude ?? 0)
        let markerStart = SYMapMarker(coordinate: startPointMP!, image: UIImage(named: "Depart")!)
        mapView.add(markerEnd)
        mapView.add(markerStart)
        computeRoute(from: startPointMP!, to: endPointMP!)
    }

func computeRoute(from fromCoordinate: SYGeoCoordinate, to toCoordinate:
        SYGeoCoordinate) {
        let startWaypoint = SYWaypoint(position: fromCoordinate, type: .start, name: "Begin")
        let endWaypoint = SYWaypoint(position: toCoordinate, type: .end, name: "End")
        let routingOptions = SYRoutingOptions()
        routingOptions.transportMode = .unknown// For other options see SYTransportMode
        routingOptions.routingType = .economic// For other options see SYRoutingType
        routing.computeRoute(startWaypoint, to: endWaypoint, via: nil, with: routingOptions)
    }

С наилучшими пожеланиями

...