Dans mes applications je MKDirections pour obtenir la conduite (marche) distance entre deux emplacement.
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 vous avez-vous lieu comme une adresse, vous pouvez donc utiliser la méthode de CLGeocoder, qui vous donnera la latitude et la longitude de votre adresse
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
Si vous comparez un résultat à distance de conduite en utilisant MKDirections avec une aide de Google Maps, vous verrez qu'ils diffèrent. Je cherchais à ce sujet et suis tombé sur le lien suivant http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/
Même si Apple a été l'amélioration de leur service de carte, ils concèdent encore la précision de Google (OMI), au moins dans une question concernant la distance de conduite. Donc, si la précision est pas très important dans votre cas, vous pouvez suivre avec Apple. Sinon, je recommande de vérifier l'API Google.