¿Usar mapkit para calcular la distancia de conducción entre dos direcciones?

¿Es posible usar el mapkit en el iPhone SDK para calcular la distancia de conducción entre dos direcciones?

¿Qué hay de usar el marco de location principal:

  • (CLLocationDistance) getDistanceFrom: location (const CLLocation *) location

Necesitará la latitud / longitud para ambas direcciones.

Edición: desaprobado en iOS 3.2. Use el método distanceFromLocation: instead.

Con iOS7 obtienes instrucciones completas dentro de la API

Eche un vistazo a este tutorial tutorial .

No, pero si tiene la longitud / latitud, es bastante fácil calcular la distancia. Es la distancia matemática entre esos puntos, por supuesto. No la distancia real de conducción o caminata que se basa en una ruta real.

En mis aplicaciones, usé MKDirections para get la distancia de conducción (caminar) entre dos ubicaciones.

CLLocationCoordinate2D startCoordinates = YOUR_START_COORDINATES; CLLocationCoordinate2D endCoordinates = YOUR_END_COORDINATES; MKPlacemark *startPoint = [[MKPlacemark alloc] initWithCoordinate:startCoordinates]; MKPlacemark *endPoint = [[MKPlacemark alloc] initWithCoordinate:endCoordinates]; MKMapItem *startItem = [[MKMapItem alloc] initWithPlacemark:startPoint]; MKMapItem *endItem = [[MKMapItem alloc] initWithPlacemark:endPoint]; MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init]; request.source = startItem; request.destination = endItem; request.transportType = MKDirectionsTransportTypeAutomobile; //here you can choose a transport type you need MKDirections *direction = [[MKDirections alloc] initWithRequest:request]; [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) { if (response) { for (MKRoute *route in response.routes) { NSLog(@"Distance : %f", route.distance); } } }]; 

si tiene su location como dirección, puede usar el método de CLGeocoder, que le dará la latitud y la longitud de su dirección

 - (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler; 

Si comparas el resultado de la distancia de conducción con MKDirections con el que usa Google Maps, verás que difieren. Estaba buscando sobre este asunto y encontré el siguiente enlace http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/

A pesar de que Apple ha estado mejorando su service de maps, aún conceden precisión a Google (IMO), al less en una pregunta sobre la distancia de conducción. Entonces, si la precisión no es muy importante en su caso, entonces puede seguirlo junto con Apple. De lo contrario, recomendaría consultar la API de Google.