Iphone 如何计算两点之间的行驶距离?
我想创建一个可以计算点A到点B之间行驶距离的应用程序。我知道Iphone 如何计算两点之间的行驶距离?,iphone,objective-c,core-location,Iphone,Objective C,Core Location,我想创建一个可以计算点A到点B之间行驶距离的应用程序。我知道CLLocation有distanceFromLocation:来计算两点之间的距离,但它只计算点A到点B之间的直线。它有办法计算两点之间的行驶距离吗积分?怎样有样品吗 谢谢我认为iOS中没有任何功能,distance from location将给出两个坐标之间的空中距离 但是,您可以使用计算道路距离。我认为iOS中没有任何功能,distance from location将给出两个坐标之间的空中距离 但是您可以使用Swift 3计算
CLLocation
有distanceFromLocation:
来计算两点之间的距离,但它只计算点A到点B之间的直线。它有办法计算两点之间的行驶距离吗积分?怎样有样品吗
谢谢我认为iOS中没有任何功能,
distance from location
将给出两个坐标之间的空中距离
但是,您可以使用计算道路距离。我认为iOS中没有任何功能,
distance from location
将给出两个坐标之间的空中距离
但是您可以使用Swift 3计算道路距离。
func routingDistance(userNotation: CLLocation, destinationLocation: CLLocation, 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)
}
}
}
Swift 3:
func routingDistance(userNotation: CLLocation, destinationLocation: CLLocation, 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的更改。因为NDA不能讨论它,但请看iOS7 MapKit的更改。不幸的是,您必须为此api付费(如果您的使用情况良好),不幸的是,您必须为此api付费(如果您的使用情况良好)