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.transportType
是MKDirectionsTransportTypeWalking
。为什么会这样选择?
其次,我真正想要的是所有 3 种交通方式(公交、步行和汽车)的旅行时间。获得所有这三个的最佳方法是什么?创建 3 个 MKDirectionsRequest 对象并使用不同的传输类型运行此代码 3 次似乎很浪费。 Apple 肯定预料到我们需要一种方法同时满足所有 3 个要求吗?
最佳答案
回答你的第一个问题-
如果您转到“设置”中的“ map 设置”,首选交通类型可能已设置为步行,这就是您获取步行路线的原因。我相信如果步行时间超过某个阈值,它会覆盖。
第二次尝试使用“|”传递多个选项例如。 MKDirectionsTransportTypeWalking | MKDirectionsTransportTypeDriving。不确定它是否有效但值得一试。需要注意的另一件事 MKDirectionsTransportTypeTransit 仅支持 ETA,并且不返回方向。
关于ios - 如何使用 MKDirections 请求支持多种传输类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39964341/