Σε εφαρμογές μου χρησιμοποίησα MKDirections να πάρει την οδήγηση (με τα πόδια) απόσταση μεταξύ δύο τοποθεσιών.
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);
}
}
}];
αν έχετε θέση ως διεύθυνση, ώστε να μπορείτε να χρησιμοποιήσετε τη μέθοδο της CLGeocoder, το οποίο θα σας δώσει το γεωγραφικό πλάτος και μήκος της διεύθυνσης σας
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
Αν συγκρίνετε ένα αποτέλεσμα απόσταση με το αυτοκίνητο χρησιμοποιώντας MKDirections με τη μία, χρησιμοποιώντας το Google Maps, θα δείτε ότι διαφέρουν. Έψαχνα για αυτό το θέμα και ήρθε σε όλη την παρακάτω σύνδεσμο http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/
Ακόμα κι αν η Apple έχουν τη βελτίωση των υπηρεσιών τους χάρτη, εξακολουθούν να παραχωρήσει στην ακρίβεια στο Google (ΙΜΟ), τουλάχιστον σε μια ερώτηση σχετικά με την απόσταση με το αυτοκίνητο. Έτσι, αν η ακρίβεια δεν είναι ιδιαίτερα σημαντικό στην περίπτωσή σας, ώστε να μπορείτε να ακολουθήσετε μαζί με την Apple. Διαφορετικά, θα ήθελα να συστήσω τον έλεγχο Google API.