如何使用 viaPoints 数组计算路线

How to calculate route using viaPoints array

如果我使用以下代码计算出从 A 点到 B 点的路线:

[SKRoutingService sharedInstance].routingDelegate = self;
[SKRoutingService sharedInstance].navigationDelegate = self;
[SKRoutingService sharedInstance].mapView = _mapView;
SKRouteSettings* route = [[SKRouteSettings alloc]init];
route.startCoordinate=CLLocationCoordinate2DMake([Constants shared].location.x, [Constants shared].location.y);
route.destinationCoordinate=CLLocationCoordinate2DMake([Constants shared].destination.x, [Constants shared].destination.y);
route.shouldBeRendered = YES;
SKNavigationSettings* navSettings = [SKNavigationSettings navigationSettings];
navSettings.navigationType=SKNavigationTypeSimulation;
navSettings.distanceFormat=SKDistanceFormatMilesFeet;

[SKRoutingService sharedInstance].mapView.settings.displayMode = SKMapDisplayMode2D;
[[SKRoutingService sharedInstance] calculateRoute:route];

以上都可以。路线将被计算和显示没有问题。 但是如何将 viaPoint 添加到已经计算好的路线中呢? 我是否需要清除已创建的并计算新的,或者以某种方式重新计算现有的并添加另一点。

另一个问题,如何正确创建 SKViaRoute 对象?

如果你想通过点计算路线,你需要在 routeSettings 中填充 viaPoints 数组。

如果您想在现有路线中添加或删除中途点,您需要使用 addViaPoint / removeViaPoint 方法。