2013-07-18 5 views
1

Я хочу создать приложение, которое может рассчитать расстояние между точкой A и точкой B. Я знаю, что CLLocation имеет distanceFromLocation: для вычисления расстояния между 2 точками, но он вычисляет только прямую линию от точки A до B. Это есть способ рассчитать расстояние между двумя точками? Как? Любой образец?Как получить расстояние между двумя точками?

Благодаря

+0

Не можете обсудить это из-за NDA, но посмотрите на изменения iOS7 MapKit. –

ответ

2

Я не думаю, что есть какая-либо функция в IOS, distanceFromLocation даст расстояние воздуха между двумя координатами.

Да, вы можете рассчитать расстояние до дороги, используя google APIS.

+0

, к сожалению, вам придется заплатить за это api (если у вас есть приличное использование) –

0

Swift 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) 
     } 
    } 
} 
Смежные вопросы