Czy jest możliwe aby użyć mapkit w SDK iPhone obliczyć odległość między dwoma adresami jazdy?
Użyj mapkit obliczyć odległość między dwoma adresami jazdy?
Z iOS7 Państwo uzyskać pełny kierunkach w obrębie interfejsu API
Spójrz na ten samouczek Tutorial .
Jak na temat korzystania ramy Rdzeń Location:
- (CLLocationDistance) getDistanceFrom: (const CLLocation *) lokalizacja
Będziesz potrzebować szerokości / długości geograficzne dla obu adresów.
Edit: Nieaktualne w iOS 3.2. Użyj distanceFromLocation: Metoda zamiast.
No ale jeśli mają długość / szerokość geograficzna to jest dość łatwe do obliczenia odległości. Jest to matematyczny odległość między tymi punktami oczywiście. Nie rzeczywista jazdy lub w odległości spaceru, który jest oparty na rzeczywistej trasie.
Użyj mapkit do obliczania dystansowi między dwoma adresami - No, ale jeśli mają długość / szerokość geograficzna to jest dość łatwe do obliczenia odległości. Jest to matematyczny odległość między tymi punktami.
Jeśli chcesz otrzymać różnicę między mapami Apple i google maps przechodzą na blogu: -
W mojej aplikacji użyłem MKDirections dostać jazdy (pieszo) odległość między dwoma lokalizacji.
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);
}
}
}];
jeśli masz ci lokalizację jako adres, więc można zastosować metodę CLGeocoder, co daje długość i szerokość geograficzna adresu
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
Jeśli porównać wynik dystansowi korzystając MKDirections z jednej z wykorzystaniem Google Maps, można zauważyć, że różnią się one. Szukałem dotyczące tej sprawy i natknąłem się na następujący link http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/
Chociaż jabłko było poprawiać jakość obsługi swoich map, wciąż przyznają się dokładnością do Google (IMO), przynajmniej w kwestii dotyczącej dystansowi. Więc jeśli dokładność nie jest bardzo ważne w przypadku, dzięki czemu można śledzić razem z Apple. W przeciwnym razie polecam sprawdzenie Google API.













