有没有办法计算路线的预计到达时间,而不仅仅是方向?方向的问题在于它只显示最快路线的一个结果。

现在我只能找到这个:

   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/

10-11 12:10