2013-07-18 111 views
1

我希望创建一个可以计算出A点之间的行驶距离,以点B.我知道CLLocationdistanceFromLocation:来计算2点之间的距离的应用程序,但它从A点仅计算直线B.它有办法计算2点之间的驾驶距离?怎么样?任何样品?如何获得两点之间的驾驶距离?

感谢

+0

不能谈论它,因为NDA的,但看iOS7 MapKit变化。 –

回答

2

我不认为存在任何的iOS功能,distanceFromLocation给出两个坐标之间的空气距离。

而且是你可以使用google APIS计算道路的距离。

+0

不幸的是你必须为这个api付费(如果你有体面的使用) –

0

斯威夫特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) 
     } 
    } 
} 
相关问题