我可以从 mapView 上已有的方向获取大概的旅行时间吗?
Can I get the approximated travel time from directions I already have on a mapView?
我正在尝试显示从用户当前位置到地图上已显示方向的位置的大致行程时间。我想知道这是否可能,因为当我搜索它时似乎没有任何内容出现在网上。如果可能 swift 会比 Objective-C 更好。
您已经在地图上显示方向,您的要求是使用 Apple 地图。我认为您正在使用 MKDirectionsRequest
来获取和显示路线。使用 MKDirectionsRequest
您可以找到方向和可能的路线。您可以指定需要哪种类型的路线(汽车、公共交通、步行),然后您可以从 route
中获得预计的行程时间。为了您的方便,我添加了完整的代码。
let request = MKDirectionsRequest()
request.source = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: startLocation?.latitude, longitude: startLocation?.longitude), addressDictionary: nil))
request.destination = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: endLocation?.latitude, longitude: endLocation?.longitude), addressDictionary: nil))
request.requestsAlternateRoutes = true // if you want multiple possible routes
request.transportType = .automobile // will be good for cars
现在获取路线
let directions = MKDirections(request: request)
directions.calculate {(response, error) -> Void in
guard let response = response else {
if let error = error {
print("Error: \(error)")
}
return
}
// Lets Get the first suggested route and its travel time
if response.routes.count > 0 {
let route = response.routes[0]
print(route.expectedTravelTime) // it will be in seconds
// you can show this time in any of your UILabel or whatever you want.
}
}
我正在尝试显示从用户当前位置到地图上已显示方向的位置的大致行程时间。我想知道这是否可能,因为当我搜索它时似乎没有任何内容出现在网上。如果可能 swift 会比 Objective-C 更好。
您已经在地图上显示方向,您的要求是使用 Apple 地图。我认为您正在使用 MKDirectionsRequest
来获取和显示路线。使用 MKDirectionsRequest
您可以找到方向和可能的路线。您可以指定需要哪种类型的路线(汽车、公共交通、步行),然后您可以从 route
中获得预计的行程时间。为了您的方便,我添加了完整的代码。
let request = MKDirectionsRequest()
request.source = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: startLocation?.latitude, longitude: startLocation?.longitude), addressDictionary: nil))
request.destination = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: endLocation?.latitude, longitude: endLocation?.longitude), addressDictionary: nil))
request.requestsAlternateRoutes = true // if you want multiple possible routes
request.transportType = .automobile // will be good for cars
现在获取路线
let directions = MKDirections(request: request)
directions.calculate {(response, error) -> Void in
guard let response = response else {
if let error = error {
print("Error: \(error)")
}
return
}
// Lets Get the first suggested route and its travel time
if response.routes.count > 0 {
let route = response.routes[0]
print(route.expectedTravelTime) // it will be in seconds
// you can show this time in any of your UILabel or whatever you want.
}
}