如何获得两点之间的驾驶距离?
问题描述:
我希望创建一个可以计算出A点之间的行驶距离,以点B.我知道CLLocation
有distanceFromLocation:
来计算2点之间的距离的应用程序,但它从A点仅计算直线B.它有办法计算2点之间的驾驶距离?怎么样?任何样品?如何获得两点之间的驾驶距离?
感谢
答
我不认为存在任何的iOS功能,distanceFromLocation
给出两个坐标之间的空气距离。
而且是你可以使用google APIS计算道路的距离。
+0
不幸的是你必须为这个api付费(如果你有体面的使用) –
答
斯威夫特3:
func routingDistance(userNotation: CLLocation, destinationLocation: Location, completion: @escaping (CLLocationDistance) -> Void) {
let request:MKDirectionsRequest = MKDirectionsRequest()
// source and destination are the relevant MKMapItems
let sourceS = CLLocationCoordinate2D(latitude: userNotation.coordinate.latitude, longitude: userNotation.coordinate.longitude)
let destinationD = CLLocationCoordinate2D(latitude: destinationLocation.coordinate.latitude, longitude: destinationLocation.coordinate.longitude)
let sourcePM = MKPlacemark(coordinate: sourceS)
let destinationPM = MKPlacemark(coordinate: destinationD)
request.source = MKMapItem(placemark: sourcePM)
request.destination = MKMapItem(placemark: destinationPM)
// Specify the transportation type
request.transportType = MKDirectionsTransportType.automobile;
// If you're open to getting more than one route,
// requestsAlternateRoutes = true; else requestsAlternateRoutes = false;
request.requestsAlternateRoutes = true
let directions = MKDirections(request: request)
directions.calculate { (response, error) in
if let response = response, let route = response.routes.first {
completion(route.distance)
}
}
}
不能谈论它,因为NDA的,但看iOS7 MapKit变化。 –