Domanda

Ho bisogno di trovare la distanza di guida tra 2 posizioni. Non ho bisogno di visualizzare le istruzioni in una mappa, solo bisogno di calcolare la distanza, che ho bisogno di usare nella mia applicazione.

La MapKit permettere questo? Esiste un'alternativa che può essere utilizzato?

Sono in grado di ottenere in avanti geo-codifica utilizzando CloudMade, ma non sembra essere un'opzione per ottenere di distanza in auto.

Apprezzare tutto l'aiuto.

È stato utile?

Soluzione

CloudMade offre anche le indicazioni stradali. Se si è interessati solo in lontananza, semplicemente ignorare le istruzioni.

Un'API-Call è simile al seguente:

  

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

e il JSON include

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

Fonte

Altri suggerimenti

Ho trovato questo in Google Gruppi, è che è stata utile?

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

Nelle mie applicazioni ho usato MKDirections per ottenere la guida (a piedi) distanza tra due posizione.

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);
              }
          }

 }];

Se si dispone di posizione come un indirizzo, in modo da poter utilizzare il metodo di CLGeocoder, che vi darà latitudine e longitudine del tuo indirizzo

- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;

Se si confronta il risultato di guida a distanza utilizzando MKDirections con quella che utilizza Google Maps, si vedrà che differiscono. Ero alla ricerca riguardo a questa materia e sono imbattuto nel seguente link http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/

Anche se Apple hanno migliorato il loro servizio di mappe, che ancora concedere in precisione a Google (IMO), almeno in una domanda per quanto riguarda la distanza di guida. Quindi, se la precisione non è molto importante nel tuo caso, in modo da poter seguire con Apple. In caso contrario, mi sento di raccomandare il controllo di Google API.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top