Ios 是否有办法在MapKit中通过单个请求获取多个.TransportType的ETA?
如果步行时间少于15分钟,我会尝试为用户提供步行的预计到达时间,在其他情况下,我会为用户提供驾驶的预计到达时间。我希望在单个Ios 是否有办法在MapKit中通过单个请求获取多个.TransportType的ETA?,ios,swift,mapkit,directions,Ios,Swift,Mapkit,Directions,如果步行时间少于15分钟,我会尝试为用户提供步行的预计到达时间,在其他情况下,我会为用户提供驾驶的预计到达时间。我希望在单个MKDirections.Request()中执行此操作,这样就不必在完成处理程序中递归调用同一个函数 我可以为request.transportType传入一个数组,但我无法将这两个值都返回,即使我可以在调试器中看到它们 func requestDirections(coordinates:CLLocationCoordinate2D, transitType:MKDir
MKDirections.Request()中执行此操作,这样就不必在完成处理程序中递归调用同一个函数
我可以为request.transportType传入一个数组,但我无法将这两个值都返回,即使我可以在调试器中看到它们
func requestDirections(coordinates:CLLocationCoordinate2D, transitType:MKDirectionsTransportType, completion:@escaping(_ travelTime:Double, _ transportType:String)-> Void){
var travelTime:Double = -1.0
let directionRequest = MKDirections.Request()
directionRequest.source = MKMapItem.forCurrentLocation()
directionRequest.destination = MKMapItem(placemark: MKPlacemark(coordinate: coordinates))
directionRequest.transportType = [.automobile, .walking]
let directions = MKDirections(request: directionRequest)
directions.calculateETA(){(ETA,error) in
if(error == nil){
if(ETA.sortedETAs[0]>15){
completion(travelTime,"car")
}else{
completion(travelTime,"figure.walk")
}
}else{
completion(travelTime, "none")
}
}
}
有可能做我正在尝试的事情吗
在调试器中,如果我右键单击并打印ETA返回中已排序ETA的说明:
Printing description of ETA.some._sortedETAs:
<__NSArrayM 0x6040003b4dd0>(
<GEOETAResultByType: 0x60b0000a4d80> {
distance = 14530;
historicTravelTime = 786;
"static_travel_time" = 725;
status = "STATUS_SUCCESS";
transportType = AUTOMOBILE;
travelTimeBestEstimate = 784;
},
<GEOETAResultByType: 0x60b0000a4cd0> {
distance = 13111;
historicTravelTime = 10362;
"static_travel_time" = 10362;
status = "STATUS_SUCCESS";
transportType = WALKING;
travelTimeBestEstimate = 10362;
}
打印预计到达时间的说明。部分分类如下:
(
{
距离=14530;
历史行程时间=786;
“静态行程时间”=725;
status=“status\u SUCCESS”;
运输类型=汽车;
travelTimeBestEstimate=784;
},
{
距离=13111;
historicTravelTime=10362;
“静态行程时间”=10362;
status=“status\u SUCCESS”;
运输类型=步行;
travelTimeBestEstimate=10362;
}