În aplicațiile mele am folosit MKDirections pentru a obține de conducere (mers pe jos), distanța între două locație.
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);
}
}
}];
dacă vă aveți locație ca o adresă, astfel încât să puteți utiliza metoda de CLGeocoder, care va da latitudinea și longitudinea a adresei
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
Daca se compara cu un rezultat de conducere la distanță folosind MKDirections cu cel folosind Google Maps, veți vedea că acestea diferă. Am fost în căutare cu privire la această chestiune și a venit peste link - ul următor http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/
Chiar dacă Apple au îmbunătățit serviciul lor hartă, ei încă mai recunosc în precizie la Google (OMI), cel puțin într-o întrebare în ceea ce privește distanța de conducere. Deci, dacă precizia nu este foarte importantă în cazul dumneavoastră, astfel încât să puteți urmări, împreună cu Apple. În caz contrar, aș recomanda verificarea API-ul Google.