I programmene mine pleide jeg MKDirections å få kjøring (walking) avstand mellom to plassering.
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);
}
}
}];
hvis du har du plassering som en adresse, slik at du kan bruke metoden for CLGeocoder, som vil gi deg lengde- og breddegrad adresse
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
Hvis du sammenligner en kjøreavstand resultat hjelp MKDirections med en ved hjelp av Google Maps, vil du se at de skiller seg. Jeg søker om denne saken og kom over følgende link http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/
Selv om Apple har vært å forbedre sin karttjeneste, har de fortsatt innrømme i nøyaktighet til Google (IMO), i hvert fall i et spørsmål angående kjøreavstand. Så hvis nøyaktighet er ikke svært viktig i ditt tilfelle, slik at du kan følge med Apple. Ellers vil jeg anbefale å sjekke Google API.