我从 Mapbox 教程中获得了一些用于 Turn-by-Turn 视图中的基本导航应用程序的代码。一切正常,我已经添加了一个 Waypoint。
在示例中,路线的原点设置为固定坐标。这与我的用例不兼容。Waypoints 和 Destination 也由坐标固定,这很好。但来源必须是“用户的位置”,这显然是可变的。
也许有人可以帮助我,将不胜感激。:)
import Foundation
import UIKit
import MapboxCoreNavigation
import MapboxNavigation
import MapboxDirections
class PlacemarktestViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let origin = CLLocationCoordinate2DMake(37.77440680146262, -122.43539772352648)
let waypoint = CLLocationCoordinate2DMake(27.76556957793795, -112.42409811526268)
let destination = CLLocationCoordinate2DMake(37.76556957793795, -122.42409811526268)
***strong text***
let options = NavigationRouteOptions(coordinates: [origin, waypoint, destination])
Directions.shared.calculate(options) { [weak self] (session, result) in
switch result {
case .failure(let error):
print(error.localizedDescription)
case .success(let response):
guard let route = response.routes?.first, let strongSelf = self else {
return
}
// For demonstration purposes, simulate locations if the Simulate Navigation option is on.
// Since first route is retrieved from response `routeIndex` is set to 0.
let navigationService = MapboxNavigationService(route: route, routeIndex: 0, routeOptions: options)
let navigationOptions = NavigationOptions(navigationService: navigationService)
let navigationViewController = NavigationViewController(for: route, routeIndex: 0, routeOptions: options, navigationOptions: navigationOptions)
navigationViewController.modalPresentationStyle = .fullScreen
// Render part of the route that has been traversed with full transparency, to give the illusion of a disappearing route.
navigationViewController.routeLineTracksTraversal = true
strongSelf.present(navigationViewController, animated: true, completion: nil)
}
}
}
}