Obliczanie odległości jazdy w iPhone

głosy
3

Muszę znaleźć dystansowi między 2 miejscach. I nie trzeba wyświetlać kierunki na mapie, wystarczy obliczyć odległość, którą trzeba użyć w mojej aplikacji.

Czy MapKit to pozwolić? Czy istnieje alternatywa, która może być używana?

Jestem w stanie dostać się do przodu geo-kodowania przy użyciu CloudMade, ale nie wydaje się być rozwiązaniem, aby uzyskać dystans jazdy.

Wdzięczni za każdą pomoc.

Utwórz 21/01/2010 o 00:31
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
3

CloudMade oferuje również dojechać. Jeśli jesteś zainteresowany tylko w oddali, po prostu zignorować instrukcje.

API-Call wygląda następująco:

http://navigation.cloudmade.com/YOUR-API-KEY-GOES-HERE/api/0.3/47.25976,9.58423,47.26117,9.59882/car/shortest.js

i JSON zawiera

....
route_summary: {
total_distance: Distance in meters,...

Źródło

Odpowiedział 21/01/2010 o 00:39
źródło użytkownik

głosy
2

Znalazłem to w Google Groups, że jest pomocna?

http://groups.google.com/group/google-maps-api/msg/4dc2fad4f74e3314?pli=1

Odpowiedział 05/05/2010 o 04:40
źródło użytkownik

głosy
0

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.

Odpowiedział 29/07/2017 o 11:20
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more