有没有办法计算路线的预计到达时间,而不仅仅是方向?方向的问题在于它只显示最快路线的一个结果。
现在我只能找到这个:
directions.calculateETA { (etaResponse, error) -> Void in
if let error = error {
print("Error while requesting ETA : \(error.localizedDescription)")
//travelTime = "Not Available"
}else{
print("No error requesting ETA")
print("\(Int((etaResponse?.expectedTravelTime)!/60)) min")
}
}
最佳答案
目前,MapKit
没有计算单个路线的 ETA 的方法。无论如何,为单个 MKRoute
调用 ETA 真的没有意义,因为您只能通过 MKRoute
调用获得 MKDirections.calculate(completionHandler:)
实例,此时您已经拥有了各个路线的旅行时间。单独的 MKDirections.calculateETA
函数的存在是为了提供一种快速获取 ETA 的方法,因为作为 documentation states ,此方法比 calculate
函数产生结果的速度更快。
您可以像这样访问所有 MKRoute
的旅行时间
directions.calculate { response, error in
guard error == nil, let response = response else {return}
for route in response.routes {
let eta = route.expectedTravelTime
}
}
请记住,
MKETAResponse.expectedTravelTime
incorporates traffic conditions 进入其计算,而 MKRoute.expectedTravelTime
uses ideal conditions ,但目前,MapKit
没有计算单个 MKRoute
对象的 ETA 的方法有流量。关于ios - Swift MapKit : Calculate ETA for a specific Route and not for directions?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46000755/