ios - 如何使用 MKDirections 请求支持多种传输类型

标签 ios mapkit

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
request.source = source;
request.destination = destination;
request.transportType = MKDirectionsTransportTypeAny;

MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
[directions calculateETAWithCompletionHandler:^(MKETAResponse * _Nullable response, NSError * _Nullable error) {
    ...
}];

首先,这里的response.transportTypeMKDirectionsTransportTypeWalking。为什么会这样选择?

其次,我真正想要的是所有 3 种交通方式(公交、步行和汽车)的旅行时间。获得所有这三个的最佳方法是什么?创建 3 个 MKDirectionsRequest 对象并使用不同的传输类型运行此代码 3 次似乎很浪费。 Apple 肯定预料到我们需要一种方法同时满足所有 3 个要求吗?

最佳答案

回答你的第一个问题-

如果您转到“设置”中的“ map 设置”,首选交通类型可能已设置为步行,这就是您获取步行路线的原因。我相信如果步行时间超过某个阈值,它会覆盖。

第二次尝试使用“|”传递多个选项例如。 MKDirectionsTransportTypeWalking | MKDirectionsTransportTypeDriving。不确定它是否有效但值得一试。需要注意的另一件事 MKDirectionsTransportTypeTransit 仅支持 ETA,并且不返回方向。

关于ios - 如何使用 MKDirections 请求支持多种传输类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39964341/

相关文章:

ios - 如何创建静态 View

ios - 如何在 map 上的 iOS 7 中填充外部覆盖圈

swift - 设置注释时获取nil。映射项的值,mapkit swift 4

ios - MapView随机标注图像

ios - 使用 RxSwift 和 Moya 处理重新认证

objective-c - 解析和排序需要立即显示的大型 NSMutableArray

iphone - 如何从数组中获取 url 并在表格 View 中显示图像

ios - 看起来 String 类型不再提供 contentsOfURL 初始值设定项(Xcode 7 更新后)?

ios - MKTileOverlay缩放级别大于21

ios - json 注释未显示在 mapview 上